AV1 的大小应该比 HEVC 大吗?

我一直使用 MP4 HEVC,效果不错。我想看看 AV1 会不会更好,于是把一个 HEVC 文件转成了 AV1。结果 224 MB 的 HEVC 变成了 330 MB 的 AV1,体积暴增近 50%!系统 Win11,MCEBuddy 2.6.3,用的是默认配置。AV1 转换用的是 Nvidia RTX 4070 Ti 和最新版 Nvidia 游戏驱动。我会尽量贴出 MCEBuddy 日志。

有何建议?

Extraordinary - s01e07 - The Merry Monarch.mp4-Convert to MP4-2024-06-06T08-02-04.log (29.9 KB)

您的日誌未設為偵錯模式,因此裡面沒有任何可供分析的內容。您可以在「設定 → 系統設定 → 日誌 → 偵錯」中變更。

调试日志 →
非凡 - 第1季第7集 - The Merry Monarch.mp4-转换为MP4-2024-06-06T16-03-54.log|附件 (778.5 KB)

我看到問題了。你的起始位元率是 1Mbps,而當你的 Nvidia GPU 進行轉檔時,它使用了略高的品質,因此最終位元率變成 1.6Mbps,這就是為什麼你的輸出檔案比較大(這是因為 Nvenc 實作屬於專有性質,與軟體實作不同,所以兩者之間的對應並不完全一致)。

試試這個:在轉檔任務頁面,把「品質」滑桿降到 -50%,這樣應該會把你的位元率減少大約一半(或更多,如果你想讓檔案更小),而且你不會明顯感受到畫質損失,但檔案大小會變小。

把你的轉檔記錄貼回來,讓我們看看發生了什麼事。

Win11 有“总码率”属性,所以我一眼就能看到。

-50% 画质下,AV1+Nvidia 输出 0.5 Mbps、109 MB,画面有点糊。
-25% 画质下,AV1+Nvidia 输出 0.9 Mbps、184 MB,画面和 0 画质一样干净。

(-50%)Extraordinary - s01e07 - The Merry Monarch.mp4-Convert to MP4-2024-06-07T10-33-41.log (778.7 KB)
(-25%)Extraordinary - s01e07 - The Merry Monarch.mp4-Convert to MP4-2024-06-07T10-40-52.log (778.3 KB)

我的媒体中心 PC 是 Ryzen 5600G,无独显。PlayOnHome 的 MP4 原文件 4.6 Mbps,我用 MCEBuddy 去广告并转 HEVC,文件大小满意,画质也 OK。想转 AV1,得先确认其他设备能硬解 AV1、不耗电,还要体积更小、画质更好,目前还没达到。

还没试过直接把 PlayOnHome 的 MP4 转 AV1,这样会有区别吗?

Goose:是不是意味着,用 AV1 就得针对每张显卡在 MCEBuddy 里单独调画质?你的 MCEBuddy MP4→HEVC 方案把画质设成 0 就搞定,太省心了。

感謝提供日誌。AV1 仍是新設定檔,需要一些我們正在進行的微調。你不需要每次都手動處理。這裡有個快速且永久的修正方式。

開啟 profiles.conf,在 MP4 AV1 設定檔底下,將 ffmpeg-videohandbrake-video 兩行中的 -q 32 改為 -q 39

現在應該就能以 0% 品質正常運作。

profiles.conf →
[MP4 HEVC] 之前
ffmpeg-video=-ss 0 -tag:v hvc1 -vf yadif=0:-1:1,hqdn3d -vcodec libx265 -preset medium -crf 26 -map 0:v -sn
handbrake-video=–start-at duration:0 -e x265 --encoder-preset medium -q 26

[MP4 HEVC] 之后
ffmpeg-video=-ss 0 -tag:v hvc1 -vf yadif=0:-1:1,hqdn3d -vcodec libx265 -preset medium -crf 26 -map 0:v -sn -q 39
handbrake-video=–start-at duration:0 -e x265 --encoder-preset medium -q 39

我的“之前”和“之后”对吗?
对 AMD 编码也适用吗?
安装 MCEBuddy 2.6.next 后会发生什么?
为了不打扰你,我怎么知道要用 -q 39

你改錯了設定檔,是 AV1 設定檔,不是 HEVC。

[MP4 AV1]
ffmpeg-video=-ss 0 -vf yadif=0:-1:1,hqdn3d -vcodec libsvtav1 -preset 6 -crf 39 -map 0:v -sn
handbrake-video=–start-at duration:0 -e svt_av1 --encoder-preset 6 -q 39

这在 ffmpeg-video 下是否正确:-crf 39,而不是 -q 39

是的,我剛才打錯了。
ffmpeg 的 -crf 和 handbrake 的 -q