基于Ubuntu Mate 24.04,如何在不损失画质下提升ffmpeg AV1编码速度?
提升AV1编码速度(不降低质量)
针对你的环境(Ubuntu Mate 24.04、ffmpeg 8.0、AMD Ryzen 5 3500U、16GB内存)和当前编码参数(-crf 12 -preset 3 -g 250),以下是几个不牺牲质量的提速方案:
换用更高效的AV1编码器
默认的libaom-av1编码器质量出色但速度极慢,ffmpeg 8.0支持的libsvtav1在相同质量下速度比libaom快数倍,是更均衡的选择。只需修改命令指定编码器:ffmpeg -i input.mp4 -c:v libsvtav1 -crf 12 -preset 3 -g 250 output.mkv注:libsvtav1的CRF刻度与libaom略有差异,若需完全匹配原质量,可在11-13区间微调CRF值,
-crf 12已能保证极高质量。充分利用CPU多核资源
你的Ryzen 5 3500U是4核8线程,需确保编码器最大化利用多核:- 添加
-threads auto让ffmpeg自动适配线程数,或直接指定-threads 8; - 若继续使用libaom,添加
-row-mt 1开启行级多线程,大幅提升并行效率且不影响质量:ffmpeg -i input.mp4 -c:v libaom-av1 -crf 12 -preset 3 -g 250 -threads 8 -row-mt 1 output.mkv - 若使用libsvtav1,它默认已开启高效多线程,也可添加
-svtav1-params "threads=8"强制指定线程数。
- 添加
启用瓦片编码并行处理
将视频分割为多个瓦片并行编码,进一步提升多核利用率,对质量无影响:- 针对libaom,添加
-tile-columns 2 -tile-rows 1(适配8线程的合理设置); - 针对libsvtav1,添加
-svtav1-params "tile-columns=2:tile-rows=1"。
- 针对libaom,添加
利用AMD CPU指令集优化
Ryzen 5 3500U支持AVX2指令集,显式指定让ffmpeg使用该优化路径:ffmpeg -i input.mp4 -c:v libsvtav1 -crf 12 -preset 3 -g 250 -cpuflags avx2 output.mkv注:Ubuntu官方包的ffmpeg通常已默认开启AVX2,但显式指定可避免潜在的指令集降级。
减少不必要的格式转换开销
添加-pix_fmt yuv420p确保输出像素格式为编码器最易处理的YUV420P,避免额外格式转换:ffmpeg -i input.mp4 -c:v libsvtav1 -crf 12 -preset 3 -g 250 -pix_fmt yuv420p output.mkv
内容的提问来源于stack exchange,提问作者Gloster
相关产品推荐
相关产品推荐

