简介
对于很多新人来说,filter命令不要说用,看懂都比较吃力。其实掌握方法后,会发现很简单。下面以多路视频拼接的命令为例子,进行解读和分析
命令行:ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -i out4.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" out.mp4
看上面的命令行,pad,overlay都可以在官网上找到解释。主要是对[0:v],[a],[b]等的理解。
首先我们单看 [0:v]pad=iw*2:ih*2[a] 这一句。[0:v]其实表示第一个视频文件的视频流,命令行开始用-i引进了4个out.mp4文件,分别对应0、1、2、3。所以这一句命令行表示对第一个视频文件的视频流进行pad处理,并将处理后的数据用 a 进行标记。这就是后面[a]的作用。这一句理解了之后,后面的也就容易了。
接下来,我们看第二句:[a][1:v]overlay=w[b]。首先看前面的[a][1:v],表示要用到a和1:v。a我们知道是0:v经过pad处理后的数据,1:v表示第二个视频文件的视频流。将两帧数据overlay处理后用b进行标记。
后面的两句雷同。这样,整句比较复杂的filter命令就解读完了。希望对不懂的朋友有帮助