我有一系列名为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秒钟。
答案 0 :(得分:2)
在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)
-stillimage
优化了幻灯片的输出。