FFmpeg:在转换过程中保持质量[重复]


19

可能重复:
将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


我只是记得昨天问过同样的问题,将AVI转换为MP4,从而保持了质量。
slhck

Answers:


26

FFmpeg -crf默认情况下将选项设置为23。

尝试:

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

CRF选项设置编码质量。比特率将根据需要变化,以在整个视频中提供一致的质量。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"

1
谢谢。我做了一些搜索。根据这篇文章,默认值为23,而18在视觉上被认为是无损的:“它看起来应该与输入相同或几乎相同,但从技术上来说并不是无损的”。
x74x61

不过,还有一个问题:您对音频有何建议?
x74x61

与相比,@ x74x61 libvo_aacenc被认为提供了相当差的质量libfaac,后者的默认(可变比特率)质量设置为100%(-q:a 100)。试试看。
slhck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.