FFmpeg-concat视频错误,与相应的输出链接不匹配?

时间:2018-10-16 07:51:36

标签: ffmpeg

我正在尝试使用ffmpeg将一些视频合并为一个视频。

输入信息:

a.mp4 1920x808,b.mkv 1280x720

首先我尝试了下面的命令,它运行正常:

  

ffmpeg -i a.mp4 -i b.mkv -f lavfi -t 0.1 -i anullsrc -filter_complex [1:v] scale = 1920:808:force_original_aspect_ratio = recrease,pad = 1920:808:(ow-iw )/ 2:(oh-ih)/ 2 [v1]; [0:v] [0:a] [v1] [1:a] concat = n = 2:v = 1:a = 1 [outv] [outa] -map [outv] -map [outa] -vcodec libx264 -crf 27-预设超快速-threads 2 out.mp4

然后我将“ b.mkv”放在首位:

  

ffmpeg -i b.mkv -i a.mp4 -f lavfi -t 0.1 -i anullsrc -filter_complex [0:v] scale = 1920:808:force_original_aspect_ratio = recrease,pad = 1920:808:(ow-iw )/ 2:(oh-ih)/ 2 [v0]; [v0] [0:a] [1:v] [1:a] concat = n = 2:v = 1:a = 1 [outv] [outa] -map [outv] -map [outa] -vcodec libx264 -crf 27-预设超快速-threads 2 out.mp4

但是这次我得到了错误:

  

输入链接in1:v0参数(大小1920x808,SAR 0:1)与相应的输出链接in0:v0参数(1920x808,SAR 3232:3231)不匹配

我不明白为什么?

有任何想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

concat过滤器要求所有段具有相同的属性,包括长宽比。您可以告诉过滤器将其忽略

concat=n=2:v=1:a=1:unsafe=1(不推荐)

或为两个视频流设置相同的长宽比,

ffmpeg -i b.mkv -i a.mp4
-f lavfi -t 0.1 -i anullsrc
-filter_complex
[0:v]scale=1920:808:force_original_aspect_ratio=decrease,pad=1920:808:(ow-iw)/2:(oh-ih)/2,setsar=1[v0];
[1:v]setsar=1[v1];[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]
-map [outv] -map [outa] -vcodec libx264 -crf 27
-preset ultrafast -threads 2 out.mp4