FFmpeg:转换过程中保持质量

FFmpeg:转换过程中保持质量

可能重复:
将 AVI 转换为 MP4,保持相同的质量

我想将大量 wmv、mpg 和 avi 文件(音频和视频编码不同)转换为具有同等质量的 mp4/x264/aac。我使用以下命令进行了一些测试:

ffmpeg.exe -i "test.avi" -c:v libx264 -c:a libvo_aacenc "test.mp4"

(如您所见,我省略了指定音频和视频的比特率和质量的选项)

使用此命令,FFmpeg 会自动保留视频尺寸,但我仍然不确定当省略比特率时它会如何处理它们?在将视频转换为不同的格式和编解码器时,保持视频质量的最佳方法是什么?

我使用的是 64 位 Windows 7 和 ffmpeg-20121230-git-518239c-win64-shared

答案1

FFmpeg-crf默认将该选项设置为 23。

尝试:

ffmpeg.exe -i "test.avi" -c:v libx264 -crf 20 -c:a aac -strict -2 "test.mp4"

慢性肾衰竭选项设置编码质量。比特率将根据需要变化,以提供整个视频的一致质量。51 表示最差,0 表示最好 — 无损。

我倾向于将所有编码设置为 20,这恰好是 Handbrake 的默认值,我对质量很满意。我建议尝试使用该值来找到您可以接受的质量级别。

您可能想要使用-ss-t选项来创建简短的测试编码。-ss是开始时间和-t是持续时间——均以秒为单位。您可能不需要对整个视频进行编码来确定什么是可以接受的。

要创建从视频第 1 分钟开始的 1 分钟剪辑:

ffmpeg.exe -i "test.avi" -c:v libx264 -crf 20  -c:a aac -strict -2 -ss 60 -t 60 "test.mp4"

相关内容