FFmpeg输出文件过大

5
我想将一个字幕文件(.srt)烧录到一个mp4视频中。我的命令是: ffmpeg -i input.mp4 -c:v mpeg4 -q:v 1 -vf subtitles=input.srt out.mp4 它输出了一个视频,质量很好,但大小为1.12GB,而输入文件只有213MB。
我认为问题在于输出文件的kbps太高,输入文件的比特率为568 kb/s,而输出文件的比特率为3154 kb/s。
所以我想设置kps,现在这是我的代码:
ffmpeg -i input.mp4 -b:v 569k -minrate 568k -maxrate 570k -c:v mpeg4 -q:v 1 -vf subtitles=input.srt out.mp4

尽管输出文件变小了(538MB),但视频的质量很差(与输入文件相比)...那么如何使输出文件更小且质量好呢?谢谢。
1个回答

8

试试这个:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -vf subtitles=input.srt out.mp4

这里使用的是 x264 库而不是 mpeg4,它更加新且具有更好的压缩效果。您可以尝试调整传递给 -crf 选项的参数 23。恒定码率因子 Constant Rate Factor 在较小的值时会产生更好的结果和更大的文件大小,在较高的值时则会产生更小的文件大小但效果较差。建议选择介于 20 到 30 之间。

如果您确定要使用 mpeg4,请参考此页面详细了解选项,可能会对您有所帮助。

如果您想使字幕看起来更美观,可以查看不同的字幕选项,例如使用不同的字体。


谢谢,它运行良好。那么我的问题是如何选择编码器?更多地取决于输入文件还是输出文件? - Page David
我不确定你具体在问什么。FFmpeg可以读取许多不同类型的视频,并写入许多不同类型。我对MPEG4不是很了解,除了它比x264旧一些。只要您的输入文件质量良好,您应该能够获得良好质量和类似文件大小的输出,尽管有许多不同的质量选项,因此可能会非常令人困惑。 - WhiteHotLoveTiger
学习和掌握所有不同的选项和过程确实需要一些时间。但是,如果您能够坚持下去并学习其中一些选项,ffmpeg是一个强大的工具。 - WhiteHotLoveTiger
也许我应该尝试编码不同的文件,然后正确使用它。xD - Page David
现在我已经在Ubuntu上正确安装了ffmpeg。虽然输出文件的大小比以前小(仍然比输入文件大),但质量(特别是颜色)不够好,有没有办法解决这个问题? - Page David
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接