所以,我有一堆 .mp4 文件,我需要更改视频和音频编解码器才能在我的设备上播放它们。
视频编解码器目前是 h264,我需要 mpeg4。音频编解码器是 aac,我需要 mp3。
我正在尝试通过这个 ffmpeg 命令转换它们:
ffmpeg -y -i input -s:v 800x480 -c:v mpeg4 -c:a mp3 output
一切运行正常,但质量不佳,因为 ffmpeg 使用了非常低的比特率。
我现在的问题是,我是否需要指定质量/比特率,或者是否可以告诉 ffmpeg 以某种方式使用原始比特率。
-vcodec copy
不是一个选项,因为视频编解码器保持不变。
答案1
一切运行正常,但质量不佳,因为 ffmpeg 使用了非常低的比特率。
的默认值mpeg4
选择得不太好,因此目标比特率相当低。指定您自己的目标-b:v 2M
(取决于您的分辨率)或更好的是,使用恒定质量-q:v 5
(如 Mulvya 在评论中所建议的那样)。在后一种情况下,值越低意味着质量越好。
我现在的问题是,我是否需要指定质量/比特率,或者是否可以告诉 ffmpeg 以某种方式使用原始比特率。
不,这样做根本没有意义。如果你要从一个编解码器切换到另一个编解码器,它们的效率可能会更高或更低。每个编解码器在不同的比特率下提供不同的质量,例如,H.264 比 MPEG-4 Part II 效率高得多。H.265 比 H.264 效率高 30-50%,等等。对于实现编解码器的实际编码器也是如此:x264 比参考 H.264 编码器更高效,等等。
因此,使用原始比特率可能效果不佳。即使保持相同的编解码器,如果重新压缩,您可能希望使用更高的比特率来避免发电损失。