ffmpeg创建幻灯片导致非常大的文件

时间:2017-06-12 23:54:53

标签: ffmpeg

我有一系列名为0000.jpg 0001.jpg 0002.jpg ... ...

的JPEG图像

我使用以下命令将这些视频转换为幻灯片视频,每帧播放1秒钟。

ffmpeg -framerate 1 -i %04d.jpg -c:v libx264 -vf fps=1 -pix_fmt yuv420p out.mp4

这种方法很好,但是如果我以正常帧率(例如25 FPS)编码完全相同的帧,那么得到的视频比我得到的大6倍

我正在寻找一种方法来有效地获得与编码25fps相同的有效编码,但每帧显示1秒钟。

2 个答案:

答案 0 :(得分:2)

H.264是帧间编码的视频编解码器,即帧依赖于其他帧以便被解码。 H.264编码器x264在基本级别上是观察帧之间图像内容的变化,然后只保存差异。

在CRF速率控制模式下,默认情况下,如果未明确指定速率控制模式(-b:v-crf-x264opts qp),则x264对帧速率敏感。当以25 fps输入时,每帧显示40毫秒,因此观看者对每个帧的图像质量不敏感,因此x264对其进行了相当大的压缩。但是当输入以1 fps编码时,每个输出帧将显示一整秒,因此x264的压缩效果要小得多。

解决方法是以25 fps编码,然后以较低的fps进行重新编译。

#1

ffmpeg -framerate 25 -i %04d.jpg -c:v libx264 -pix_fmt yuv420p out.264

#2 使用mp4box *,GPAC的一部分,具有较低费率的remux:

mp4box -add out.264:fps=1 -new out.mp4

*通常情况下,使用ffmpeg可以实现这一点,但它无法正确地重新组合带有无序帧存储的H.264原始流,即具有B帧的存储。

答案 1 :(得分:0)

ffmpeg的

-stillimage优化了幻灯片的输出。