首页 > 解决方案 > 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=decrease,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 -preset ultrafast -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=decrease,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 -preset ultrafast -threads 2 out.mp4

但这次我得到了错误:

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

我不明白为什么?

有什么想法吗?

提前谢谢了。

标签: videoffmpegvideo-processing

解决方案


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

推荐阅读