当我使用这个时,质量看起来不错。
ffmpeg -same_quant -i video.mp4 video.avi
文档中ffmpeg
写道:“请注意,这不是相同的质量。除非您知道需要它,否则不要使用此选项。”
我是否获得了-same_quant
最好的质量,或者是否有一个选项可以提供与输入相同的质量并且更值得推荐?
答案1
(改编自上面的评论)
根据所使用的编解码器(某些编解码器与某些容器不兼容),您始终可以简单地复制流 ( -codec copy
)。这是避免质量变化的最佳方法,因为您不需要重新编码流,只是将它们重新打包到不同的容器中。
处理音频/视频文件时,请务必记住容器大多数独立于所使用的编解码器。人们经常看到人们将文件称为“AVI 视频”或“MP4 视频”,但这些都是容器,并不能告诉我们播放器是否能够播放流,因为除了技术限制(例如,AVI 可能存在 h264 和 Ogg Vorbis 问题),您可以使用任何编解码器。
-same_quant
似乎是告诉 ffmpeg 尝试实现类似质量的一种方法,但是一旦您重新编码视频(至少使用有损编解码器),您就无法获得相同的质量。如果您关心质量,一个好的经验法则是尽可能避免对流进行重新编码。
因此,为了使用 ffmpeg 复制流,您需要执行以下操作:
ffmpeg -i video.mp4 -codec copy video.avi
(正如@Peter.O 提到的,选项顺序很重要,所以这就是-codec copy
必须去的地方。您仍然可以保留-same_quant
,但它不会有任何效果,因为您没有重新编码流。)
答案2
在 FreeBSD 8.2 下,我尝试了 -codec copy 但也收到了未知解码的消息。经过反复试验,我发现在 FreeBSD 下可以工作:
ffmpeg -i video.mp4 -vcodec copy video.avi