我正在尝试创建一个具有非常特定用例的工具:我有两个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
答案 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"