我想将不同时间的多幅图像合并为一个视频,但是失败了。
首先,我通过以下代码将第一组图片合并到“video1.mp4”中:
$ ffmpeg -loop 1 -r 30 -i img%2d.png -t 00:01:30 -shortest video1.mp4
然后我以同样的方式将第二组合并到“video2.mp4”。
但是当我通过以下代码合并“video1.mp4”和“video2.mp4”时:
$ ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex \
"[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1" output.mp4
我收到一条错误消息:
过滤器图描述中的流说明符“:1”[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 与任何流都不匹配。
我发现只有当视频没有音频数据时才会出现此错误信息,但我需要合并所有视频,然后才能将另一个音频文件添加到最终视频中。
你能帮我合并多个没有音频的视频吗?
答案1
简单来说,您在创建的图像视频中没有音频流。那里只有视频流。因此,当您尝试从没有音频流的源获取音频流时,您会收到此错误。在您的第一个命令中,您只是从一组图像中创建了一个视频,其中没有音频。因此,在该命令的输出中将只有一个视频流。在您的第二个命令中,[0:0]
指的是第一个输入的第一个流,在您的情况下它是视频流。[0:1]
指的是第二个输入的第二个流,它不存在。
由于您要连接的任何视频都没有音频,因此简单的修复方法如下。
ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex
"[0:0][1:0]concat=n=2:v=1:a=0" output.mp4