ffmpeg filter命令解讀--以多路視訊拼接為例

yingyemin發表於2020-06-08

簡介

    對於很多新人來說,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命令就解讀完了。希望對不懂的朋友有幫助

相關文章