FFmpeg:轉 AV1
AV1 在同樣畫質下檔案比 H.264 小很多,但不是每支影片轉了都會變小,建議先取樣試轉再決定。
1. 安裝
需要有 libsvtav1(SVT-AV1)的 FFmpeg,只有 libaom-av1 會很慢。
Windows:要裝 full 版(essentials 版沒有),winget 的 Gyan.FFmpeg 就是 full 版。
winget install Gyan.FFmpeg
ffmpeg -hide_banner -encoders | findstr av1
Linux:用套件管理員安裝。較舊的發行版可能沒有 SVT-AV1,可改用 BtbN 靜態編譯版(linux64-gpl)。
sudo apt install ffmpeg
ffmpeg -hide_banner -encoders | grep av1
有看到 libsvtav1 就對了。
2. 轉檔
ffmpeg -i input.mp4 ^
-c:v libsvtav1 -preset 5 -crf 26 -pix_fmt yuv420p -g 240 ^
-c:a copy -movflags +faststart ^
output.mp4
| 參數 | 用途 |
|---|---|
-preset 5 | 0–13,越小越慢、壓得越好,5–6 是平衡點 |
-crf 26 | 0–63,越小畫質越好,預設 35,收藏用 24–26 |
-pix_fmt yuv420p | 輸出 8-bit,相容性最好 |
-g 240 | 關鍵影格間隔,24fps 約 10 秒一個,拖曳比較跟手 |
-c:a copy | 音訊直接沿用 |
實測 Ryzen 5 3600、1080p,約 2 倍即時速度(2 小時影片約 50 分鐘)。
3. 先取樣,再決定要不要轉
來源不同,結果差很多(crf 26):
| 來源 | H.264 | AV1 |
|---|---|---|
| 演唱會(高碼率) | 約 6 Mbps | 只剩 9–19% |
| 花絮(雜訊多) | 約 1.7 Mbps | 反而大 5 成 |
| 網路影片(低碼率) | 約 0.75 Mbps | 大了約 15% |
高碼率的 H.264 最值得轉;低碼率、雜訊多,或已經是 AV1 / HEVC 的就別轉了。
取 30 分鐘處的 60 秒,分別轉 AV1 和直接剪出原檔,比較兩個檔案大小:
ffmpeg -ss 1800 -i input.mp4 -t 60 -map 0:v:0 -c:v libsvtav1 -preset 5 -crf 26 sample_av1.mp4
ffmpeg -ss 1800 -i input.mp4 -t 60 -map 0:v:0 -c copy sample_src.mp4
再用 VMAF 檢查畫質,93 分以上肉眼就很難分辨:
ffmpeg -ss 1800 -t 60 -i input.mp4 -i sample_av1.mp4 ^
-lavfi "[0:v]setpts=PTS-STARTPTS[ref];[1:v]setpts=PTS-STARTPTS[dist];[dist][ref]libvmaf" ^
-f null -
VMAF 對雜訊被抹平比較不敏感,分數之外最好還是自己看一下樣本。