video - ffmpeg 输出文件太大

标签 video ffmpeg

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

最佳答案

试试这个:

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 ,例如使用不同的字体。

关于video - ffmpeg 输出文件太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546998/

相关文章:

video - 如何使用 FFmpeg 颜色空间选项

iOS7 HTML5 视频海报不工作

video - 最大 MP4 H264 header 大小

python - 获取保存在文本文件中的具有相应时间戳和场景评分的场景变化帧

python - 您可以使用 ffmpeg 流从文件实时插入文本吗?

ffmpeg - 使用 alpha 将 WEBM 转换为 HEVC

javascript - 如何从 HTML5 视频播放器帧访问原始像素数据?

python - 使用 PyTorchVideo 加载用于训练视频分类模型的动力学数据集时出错

ffmpeg - 为什么这个 mp4 不再在 video-js <video> 标签中播放

java - ffmpeg 加入两个 mp4 视频一个接一个