当前位置: 首页>>技术教程>>正文


使用 ffmpeg 将 mp4 转换为相同的 high-quality avi 文件?

问题描述

我想使用 ffmpeg 将 mp4 视频文件转换为 avi 但质量相同,即使它占用更多空间。如果我只是这样做:

ffmpeg -i file.mp4 file.mp4.avi

生成的 avi 文件非常 low-quality 和像素化。如何在保持视频和音频质量的同时进行这种转换?

最佳答案

每当您从一个编解码器转码到另一个编解码器(视频或音频)时,您总是会损失一点质量,但如果您只想从 MP4 容器类型更改为 AVI 容器,也许可以避免这种情况。如果您没有理由转码,codec:copy 可能会有所帮助(它应该更快)。

如果您必须转码,因为您需要使用特定的视频编解码器,我希望您可以使用上面 zetah 在他的评论中的建议并使用 -sameq 开关。或者,您可能希望使用 qscale 选项手动设置质量。数字越小质量越好,但文件占用的空间也越大。

上次我对视频进行转码时,我使用了 qscale=8.0 ,但我建议您尝试找到与输入质量相匹配的最佳值。

Marty Jay 很有帮助地提到,sameq 意味着与输入中的量化器相同,这可能不会产生相同的质量。他引用的文章提到使用 multi-pass 转换,这是在不牺牲质量的情况下实现更好压缩的好方法。

次佳答案

我的解决方案:

ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi

享受!!

第三种答案

这是我不时使用的 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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12273.html,未经允许,请勿转载。