ffmpeg - 输入链接in1:v0参数(大小640x640,SAR 16:9)与0:v0参数(640x640,SAR 427:240)中相应的输出链接不匹配

fob*_*bus 6 ffmpeg

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

ffmpeg -i new1.mp4 -i new2.mp4 -i new3.mp4 -i new4.mp4 -filter_complex concat=n=4:v=1:a=1 output.mp4
Run Code Online (Sandbox Code Playgroud)

得到此错误:

Input link in1:v0 parameters (size 640x640, SAR 16:9) do not match the corresponding output link in0:v0 parameters (640x640, SAR 427:240)
Run Code Online (Sandbox Code Playgroud)

所有四个视频具有相同的编解码器和相同的大小(640x640)和相同的比特率(30)

我做错了什么?

Gya*_*yan 10

输入不具有相同的样本纵横比.尝试

ffmpeg -i new1.mp4 -i new2.mp4 -i new3.mp4 -i new4.mp4 -filter_complex \
        "[0]setdar=16/9[a];[1]setdar=16/9[b];[2]setdar=16/9[c];[3]setdar=16/9[d]; \
         [a][b][c][d]concat=n=4:v=1:a=1" output.mp4
Run Code Online (Sandbox Code Playgroud)

  • 它应该是`scale = 640x640,setdar = 16/9` - 逆序和逗号,而不是冒号. (2认同)
  • 不需要.你需要将音频流提供给concat:`[a] [0:a] [b] [1:a] [c] [2:a] [d] [3:a] concat = n = 4:v = 1:a = 1 [v] [a]`然后映射输出`-map"[v]"-map"[a]"` (2认同)

Mak*_*sov 5

这是一种更简单的方法/sf/answers/3419755811/

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]scale=1024:576:force_original_aspect_ratio=1[v0]; [1:v]scale=1024:576:force_original_aspect_ratio=1[v1]; [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map [v] -map [a] output.mp4
Run Code Online (Sandbox Code Playgroud)

因此,首先将所有输入视频缩放到相同的分辨率,然后将它们连接起来。