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

Pra*_*eve 7 ffmpeg

我试图从图像序列中创建一个视频.但我必须以不同的秒数显示每个图像.如何使用FFMPEG执行此操作.

提前致谢.

小智 8

FFmpeg wiki中有一些提示.这个例子(维基中的倒数第二个)特别适合您的需求:

ffmpeg -loop 1 -f image2 -i img.png -c:v libx264 -t 30 out.mp4
Run Code Online (Sandbox Code Playgroud)

其后的数字-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
Run Code Online (Sandbox Code Playgroud)

然后合并生成的视频(如果需要):

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

    file 'out1.mp4'
    file 'out2.mp4'
    file 'out3.mp4'
    file 'out4.mp4'

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

    ffmpeg -f concat -i videos.txt -c copy final_video.mp4

有关视频合并(连接)的更多信息可以在wiki中找到.

  • 这是最好的方法吗? (4认同)