如何使用ffmpeg减少输出文件大小?

时间:2018-02-02 22:03:57

标签: ffmpeg

我正在尝试创建一个具有非常特定用例的工具:我有两个JPEG文件,我想创建一个输出视频,首先显示一个图像n秒,交叉淡化到另一个,然后显示第二个n秒的图像(用于显示之前/之后)。我有这个工作,但到目前为止,我最好的结果是一个10秒的视频,文件大小为842k。我希望尽可能小,而不会失去明显的质量。

我是一名新手,在多次阅读文档之后,我不确定最佳策略是什么。事实是图像在第一个或第二个n秒内不会改变可以利用的东西吗?还有其他更一般的策略吗?

我正在使用ffmpeg 3.4.1。这是我目前的测试命令行:

cat *.jpg | ffmpeg -f image2pipe -i - -vf 'zoompan=d=(4+2)/2:fps=1/2,framerate=25:interp_start=0:interp_end=255:scene=100,scale=1280:-2' -c:v libx264 -crf 27 out.mp4

2 个答案:

答案 0 :(得分:1)

最简单的建议是:

  • 使用较慢的编码预设进行有效压缩,例如-preset veryslow

  • 使用更现代的编码器,例如-c:v libx265

此外:

  • format=yuv420p添加到过滤链的末尾以获得播放器兼容性。

答案 1 :(得分:0)

试试这个,我将它用于 1280x720 持续时间 01:18:55 的视频 mp4 文件

大小为 493 MB(517.313.413 字节)之前; --> 在大小为 197 MB(206.783.999 字节)之后;

之后,视频中的文字仍然可读,没有模糊。所以它会节省你的空间,但在视觉上仍然可以接受。

但是过程很慢,你要有耐心,或者一边工作一边在后台

ffmpeg -i "webinar.mp4" -vcodec libx264 -preset veryslow -crf 30 "webinar-r02.mp4"