使用FFmpeg以不同的时间距离连接图像

时间:2015-04-19 11:12:51

标签: ffmpeg slideshow

我有一组图像,我尝试创建幻灯片。在这website上,我找到了以下命令:

ffmpeg -framerate 1/5 -start_number 126 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

我的工作正常。但在我的情况下,我需要让每个图像显示不同的时间段。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以尝试使用concat demuxer并为每个帧提供持续时间。

  1. 制作包含输入路径的文本文件以及每个输入的持续时间:

    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
    
  2. 然后运行ffmpeg

    ffmpeg -f concat -i input.txt -pix_fmt yuv420p -movflags +faststart output.mp4
    
  3. 注意:

答案 1 :(得分:0)

所以不久前我问过这个问题还没有回答。我自己也找不到一个。我通过为每个指向正确图像的帧创建符号链接来解决我的问题。然后我将帧率设置为1.因此,对于每一秒我想要显示一个图像,我有一个指向它的符号链接。

当然也可以相应地复制文件。根据视频的总帧数,这可能会导致使用大量磁盘空间。所以我选择了链接。