使用ffmpeg合并视频和图像

时间:2017-05-13 22:09:45

标签: ffmpeg

我正在尝试编译一个包含此文件的.webm文件:

  1. 10秒显示image1.jpg
  2. 显示电影(.mp4文件),持续约20秒
  3. 10秒显示image2.jpg
  4. 10秒显示image3.jpg
  5. 我无法知道如何/如果ffmpeg的连接功能可以做这样的事情。有线索吗?

1 个答案:

答案 0 :(得分:3)

您可以使用concat filter

没有音频

ffmpeg \
-loop 1 -framerate 24 -t 10 -i image1.jpg \
-i video.mp4 \
-loop 1 -framerate 24 -t 10 -i image2.jpg \
-loop 1 -framerate 24 -t 10 -i image3.jpg \
-filter_complex "[0][1][2][3]concat=n=4:v=1:a=0" out.mp4
  • -frameratevideo.mp4的帧速率匹配。

带音频

如果video.mp4中有音频,您需要为图像提供音频以及它能够连接。产生沉默的例子:

ffmpeg \
-loop 1 -framerate 24 -t 10 -i image1.jpg \
-i video.mp4 \
-loop 1 -framerate 24 -t 10 -i image2.jpg \
-loop 1 -framerate 24 -t 10 -i image3.jpg \
-f lavfi -t 0.1 -i anullsrc=channel_layout=stereo:sample_rate=44100 \
-filter_complex "[0:v][4:a][1:v][1:a][2:v][4:a][3:v][4:a]concat=n=4:v=1:a=1" out.mp4
  • channel_layout与来自video.mp4的音频通道布局(立体声,单声道,5.1等)进行匹配。
  • sample_rate与来自video.mp4的音频采样率进行匹配。
  • 无需将-t的{​​{1}}持续时间与任何相关的视频输入相匹配:concat过滤器会自动将其填充以匹配视频时长。