假设我有一系列需要合并的时间不重叠的视频文件:
1.mp4
[0:00-0:45]2.mp4
[1:00-2:00]3.mp4
[2:10-3:00]
此示例有三个段,但一般情况下可能会有更多。
假设这些视频的长宽比相同但大小不一定相同,我想使用复杂的滤镜将它们组合成一个 3:00 长度的视频文件,没有视频时会留有空白。我实际上想要一个更复杂的滤镜结果,将其作为一部分,但我不知道如何制作这一部分。
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex "
[0:v] scale=640x480 [one];
[1:v] scale=640x480 [two];
[2:v] scale=640x480 [three];
???
[out]" -map '[out]' out.mp4
我正在寻找缩放输入视频流后要应用的过滤函数。我查看了:
- concat - 这似乎不允许时间填充
- streamselect 和 sendcmd - 如果有很多流,这似乎会变得非常复杂
这个问题类似于FFmpeg - 用间距集中音频文件,但使用视频代替音频。
我只是寻求视频方面的帮助;我的音频已经按我想要的方式运行了。
答案1
您可以使用颜色过滤器来完成此操作。
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex "
[0:v]scale=640x480[one];
color=black:s=640x480:d=15[b0];
[1:v]scale=640x480[two];
color=black:s=640x480:d=10[b1];
[2:v]scale=640x480[three];
[0:v][b0][1:v][b1][2:v]concat=n=5:v=1:a=0[out]"
-map '[out]' out.mp4
我假设您想要包含整个剪辑 1、2 和 3。