如何使用ffmpeg在视频中显示特定时间的图像

如何使用ffmpeg在视频中显示特定时间的图像,ffmpeg,Ffmpeg,我正在尝试从图像序列中创建一个视频。但是我必须用不同的秒数显示每个图像。如何使用FFMPEG实现这一点 提前谢谢。中有一些提示。这一示例(wiki中倒数第二个)特别适合您的需要: ffmpeg -loop 1 -f image2 -i img.png -c:v libx264 -t 30 out.mp4 其中-t之后的数字(示例中为30)是视频的持续时间(以秒为单位) 只需按如下方式多次执行该命令: ffmpeg -loop 1 -f image2 -i intro.png -c:v libx

我正在尝试从图像序列中创建一个视频。但是我必须用不同的秒数显示每个图像。如何使用FFMPEG实现这一点


提前谢谢。

中有一些提示。这一示例(wiki中倒数第二个)特别适合您的需要:

ffmpeg -loop 1 -f image2 -i img.png -c:v libx264 -t 30 out.mp4
其中
-t
之后的数字(示例中为30)是视频的持续时间(以秒为单位)

只需按如下方式多次执行该命令:

ffmpeg -loop 1 -f image2 -i intro.png -c:v libx264 -t 5 out1.mp4
ffmpeg -loop 1 -f image2 -i someimage.png -c:v libx264 -t 15 out2.mp4
ffmpeg -loop 1 -f image2 -i someotherimage.png -c:v libx264 -t 25 out3.mp4
ffmpeg -loop 1 -f image2 -i outro.png -c:v libx264 -t 10 out4.mp4
然后合并生成的视频(如果需要):

  • 创建一个文本文件(例如:
    videos.txt
    ),其中列出了视频文件名

    文件“out1.mp4”

    文件“out2.mp4”

    文件“out3.mp4”

    文件“out4.mp4”

  • 运行此命令(如果需要,请更改文件名)

    ffmpeg-f concat-i videos.txt-c copy final\u video.mp4


  • 有关视频合并(连接)的更多信息,请参见。

    ffmpeg中包含了一节,具体介绍如下内容:

    以下是一个例子:

    input.txt的内容示例:

    file '/path/to/dog.png'
    duration 5
    file '/path/to/cat.png'
    duration 1
    file '/path/to/rat.png'
    duration 3
    file '/path/to/tapeworm.png'
    duration 2
    file '/path/to/tapeworm.png'
    
    然后运行:


    ffmpeg-f concat-i input.txt-vsync vfr-pix\u fmt yuv420p-framerate 30 output.mp4

    这是最好的方法吗?您可以避免创建要连接的文件列表。事实上,使用命名管道可以完全避免创建临时文件。这两个都在这里简单地解释:@MageProspero不,不是,看看我的答案。