我正在尝试连接 3 个视频,它们具有不同的编码,并且 2 个缺少音频。我使用以下方法为没有音频的视频添加了静音音轨:
ffmpeg -i video1_no_audio.m4v -f lavfi -i anullsrc -c:v copy -map 0:v -map 0:a? -map 1:a -shortest video1_now_with_blank_audio.m4v
然后我尝试将它们连接起来:
ffmpeg -i video1_now_with_blank_audio.m4v -i video2.mp4 -i video3_now_with_blank_audio.m4v -filter_complex "[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" combined_vdeo.mp4
失败原因:
Parsed_concat_0 @ 0x7fba9b00fd80] 输入链接 in1:v0 参数(尺寸 1920x1720,SAR 1:1)与相应的输出链接 in0:v0 参数(1204x1080,SAR 1:1)不匹配 [Parsed_concat_0 @ 0x7fba9b00fd80] 无法在 Parsed_concat_0 上配置输出垫 重新初始化过滤器时出错! 无法将帧注入过滤器网络:参数无效 处理流 #2:0 的解码数据时出错 转换失败!
第 1 和第 3 个视频是我在 Keynote 中制作的片头和片尾,并导出为 .mk4 视频。在屏幕上,它们的宽高比为 1920x1720,与我尝试连接它们的视频相匹配。我不确定如何修复第 1 和第 3 个视频,使它们与第 2 个视频匹配,然后将它们连接起来……
答案1
我找到了一个解决方法。在 Keynote 中创建了两个与第三个分辨率不匹配的视频,并将其导出为电影(文件 > 导出到 > 电影)。有一个分辨率设置,我最初选择了 1080p 选项。尽管输出在 Quicktime 中仍然显示 1920x1720(这让我认为它们实际上被编码为 1920x1720),但显然并非如此(至少就 FFmpeg 而言)。我发现,如果我使用“自定义”分辨率而不是 1080p 从 Keynote 导出它们,我可以选择输入 1920x1720。当我使用以这种方式创建的视频时,FFmpeg 命令可以完美运行。