我正在尝试编译一个包含以下内容的.webm文件:
- 10 秒显示图像1.jpg
- 显示影片(.mp4文件(,持续约 20 秒
- 10 秒显示图像2.jpg
- 显示图像3的 10 秒.jpg
我无法找出 ffmpeg 的连接功能如何/是否可以做这样的事情。有什么线索吗?
您可以使用 concat 过滤器。
无音频
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
- 将
-framerate
与video.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
的音频采样率相匹配。 - 无需将
anullsrc
的-t
持续时间与任何关联的视频输入相匹配:concat 过滤器将自动填充它以匹配视频持续时间。