首页 > 解决方案 > ffmpeg concat 两个大小不同的视频遇到“不匹配”错误

问题描述

我正在尝试连接 4 个 mp4 文件。我正在使用下面的命令,但无法连接

ffmpeg -i L00.mp4 -i L01.mp4 \
  -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" \
  -map "[v]" -map "[a]" output.mp4

收到此错误:

Input link in1:v0 parameters (size 1150x722, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1158x690, SAR 1:1)

帖子中的此命令

ffmpeg -i L00.mp4 -i L01.mp4 -filter_complex \
"[0:v]scale=1158:722:force_original_aspect_ratio=decrease,pad=1158:722:(ow-iw)/2:(oh-ih)/2[v0]; \
 [1:v]scale=1158:722:force_original_aspect_ratio=decrease,pad=1158:722:(ow-iw)/2:(oh-ih)/2[v1]; \
 [v0][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" -c:v libx264 -c:a aac -movflags +faststart output.mp4

收到此错误:

Filter pad has an unconnected output

L00.mp4 的尺寸是 1158 × 690,L01.mp4 是 1150 × 722。

如何解决这个问题?

标签: ffmpeg

解决方案


[v1]第二个pad命令的输出未使用,这就是您收到的原因Filter pad has an unconnected output

经过一些修改,FFmpeg 命令应该和这个类似

ffmpeg -i L00.mp4 -i L01.mp4 -filter_complex "[0:v]scale=1158:722:force_original_aspect_ratio=decrease[v0];[v0]pad=1158:722:(ow-iw)/2:(oh-ih)/2:black[v1];[1:v]scale=1158:722:force_original_aspect_ratio=decrease[v2];[v2]pad=1158:722:(ow-iw)/2:(oh-ih)/2:black[v3];[v1][0:a][v3][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac -movflags +faststart output_force_decrease.mp4

看,我在 concat 命令中使用了 pad [v3] 的输出。


推荐阅读