【问题标题】:ffmpeg output file is too largeffmpeg 输出文件太大
【发布时间】:2017-06-07 04:50:39
【问题描述】:

我想将字幕文件(.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),但视频质量很差(与输入文件比较)... 那么如何使输出文件更小且质量更好呢?谢谢。

【问题讨论】:

    标签: video ffmpeg


    【解决方案1】:

    试试这个:

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

    这使用 x264 库而不是 mpeg4。它更新并且具有更好的压缩。您可以尝试将 23 传递给 -crf 选项。 Constant Rate Factor 将在较低的值下提供更好的结果和更大的文件大小,而在较高的值下以较小的文件大小提供更差的结果。尝试 20 到 30 之间。

    如果您确定要坚持使用 mpeg4,this page 会详细说明选项,可能会有所帮助。

    如果你想让你的字幕看起来更好看,看看不同的options for subtitles,比如使用不同的字体。

    【讨论】:

    • 谢谢,效果很好。所以我的问题是如何选择编码器?它更多地取决于输入文件还是输出文件?
    • 我不确定你到底在问什么。 ffmpeg 可以读取许多不同的视频类型,并写入许多不同的类型。我对 mpeg4 了解不多,只是它比 x264 更老。只要您的输入文件质量好,您就应该能够使您的输出质量好,并且文件大小相似,尽管有很多不同的质量选项,因此可能会非常混乱。跨度>
    • 您可能想了解的其他内容是进行两次编码。此链接提供了 x264 的一些详细信息:trac.ffmpeg.org/wiki/Encode/H.264#twopass
    • 您的大脑肯定需要一段时间才能了解所有不同的选项和正在进行的过程。虽然如果你能坚持下去并学习一些选项,ffmpeg 是一个强大的工具。
    • 也许我应该尝试编码不同的文件,我会正确使用它。xD
    猜你喜欢
    • 1970-01-01
    • 2011-11-24
    • 2020-08-17
    • 1970-01-01
    • 2018-06-15
    • 2016-11-14
    • 2016-08-14
    • 2015-11-15
    • 1970-01-01
    相关资源
    最近更新 更多