我想使用 ffmpeg 将 mp4 视频文件转换为 avi,但质量相同,即使占用更多空间。如果我简单地这样做:
ffmpeg -i file.mp4 file.mp4.avi
生成的 avi 文件质量很差,像素化严重。如何在保持视频和音频质量的同时进行转换?
答案1
我的解决方案:
ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi
享受!!
答案2
当您从一种编解码器转码为另一种编解码器(视频或音频)时,总会损失一点质量,但如果您只想从 MP4 容器类型更改为 AVI 容器,也许可以避免这种情况。codec:copy
如果您没有转码的理由(并且它应该更快),这可能会有所帮助。
如果您必须转码,因为您需要使用特定的视频编解码器,我希望您可以采用 zetah 在他的评论中的建议并使用开关-sameq
。或者,您可能希望使用该qscale
选项手动设置质量。数字越低,质量越好,但文件占用的空间越大。
上次我转码视频时使用了qscale=8.0
,但我建议您进行实验以找到最适合您的输入质量的方法。
Marty Jay 有帮助地提到,sameq 表示与输入相同的量化器,这可能不会产生相同的质量。他引用的文章提到使用多通道转换,这是一种在不牺牲质量的情况下实现更好压缩的好方法。
答案3
这是我时不时使用的 2-pass(高级简单配置文件)。
第 1 遍:
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null
第 2 遍:
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi