我有一组图像,我尝试创建幻灯片。在这website上,我找到了以下命令:
ffmpeg -framerate 1/5 -start_number 126 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
我的工作正常。但在我的情况下,我需要让每个图像显示不同的时间段。我怎样才能做到这一点?
答案 0 :(得分:4)
您可以尝试使用concat demuxer并为每个帧提供持续时间。
制作包含输入路径的文本文件以及每个输入的持续时间:
file '/path/to/image0.png'
duration 2
file '/path/to/image1.png'
duration 5
file '/path/to/image2.png'
duration 1.5
file '/path/to/image3.png'
duration 4
然后运行ffmpeg
:
ffmpeg -f concat -i input.txt -pix_fmt yuv420p -movflags +faststart output.mp4
注意:
有关详细信息,请参阅concat demuxer documentation。
该示例不能使用旧的ffmpeg
,因此请确保download最近的构建,因为FFmpeg开发非常活跃。
答案 1 :(得分:0)
所以不久前我问过这个问题还没有回答。我自己也找不到一个。我通过为每个指向正确图像的帧创建符号链接来解决我的问题。然后我将帧率设置为1.因此,对于每一秒我想要显示一个图像,我有一个指向它的符号链接。
当然也可以相应地复制文件。根据视频的总帧数,这可能会导致使用大量磁盘空间。所以我选择了链接。