我知道这是一个“无聊”的问题,但是:假设我有一个 wmv、avi 等大文件。我想将其转换为 .MP4,尽可能减小文件大小,当然还要保持音频/视频的质量。怎么做?我应该使用什么编解码器?我使用的是 FFmpeg
答案1
您可以尝试使用 libx264 CRF 18 进行编码。CRF 参数设置质量并影响文件大小。值越低表示质量越高,典型值为 18 到 28。默认值为 23。
CRF 18 因产生(可以说是)“视觉无损”的结果而闻名:
ffmpeg -i input.avi -c:v libx264 -crf 18 -preset veryslow -c:a copy out.mp4
请注意,我使用了一个veryslow
预设,它将为您提供尽可能小的文件。如果您想更快地编码,可以忽略它,但文件大小也会更大。
另外,我决定复制音轨而不是重新编码它(-c:a copy
),主要是因为我认为您的样本中已经是 AAC/MP3 立体声。
如果输出对您来说太大,请尝试使用更高的 CRF 值(最高 23),但质量会受到影响。
答案2
2021
H265 / HEVC 版本:
ffmpeg -i input.mp4 -vcodec libx265 -crf 18 -tag:v hvc1 -preset veryslow output.mp4
答案3
获得最小的视频并尽量减少质量损失是最大的挑战。网络上有很多指南会推荐在 FFmpeg 上使用的设置,例如游戏捕获、流媒体、DVD 翻录等。
如果你想无损无损,试试这个:
ffmpeg -i input.mp4 -c:v libx264 -crf 0 output.mp4
最重要的部分是-crf 0
将其设置为无损。但是,输出文件通常会非常大。您可以将其更改为,-crf 18
这样可以让您获得质量可接受且没有大多数瑕疵的东西。