ffmpeg文檔30-濾鏡入門

30 濾鏡入門

FFmpeg經過libavfilter庫實現濾鏡功能。web

libavfilter中,一個濾鏡能夠有多個輸入和多個輸出。爲了儘量介紹清楚,咱們假定有下面的濾鏡鏈圖。命令行

[main]
input --> split ---------------------> overlay --> output
        |                             ^
        |[tmp]                  [flip]|
        +-----> crop --> vflip -------+

在這個濾鏡鏈圖中,利用split濾鏡把輸入流分離成了兩路流,其中一路經過crop濾鏡和vfilp濾鏡的同一路級聯應用,再同另一路一塊兒經過overlay濾鏡處理的流合成進行輸出。則能夠採用以下的命令行實現:code

ffmpeg  -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT

這樣最終輸出將是視頻上部是原始,下部是上部的鏡像。(倒影效果)視頻

同一路的濾鏡間用逗號(',')進行分割,不一樣路的濾鏡間用分號(';')進行分割。在這個例子裏面cropvflip是在同一路中的濾鏡,splitoverlay則不是同一路的(同一路的級聯是對連續的視頻進行,若是涉及到一輸多、多輸一或者多輸多則都不是在同一路的,即不是同一路級聯)。能夠經過在方括號('[]')中的標籤名來命名處理的鏈路。這個例子裏,split濾鏡生成了兩路就經過[main][tmp]進行了標籤命名以方便後續處理。ip

其中被split處理輸出的第二路流被命名爲[tmp],它又被crop濾鏡處理裁去下半部視頻,而後經過vflip進行了水平鏡像(垂直翻轉,即把視頻鏡像到下半部了)。這是整個輸出被命名爲flip。再把[main]flip經過overlay進行覆蓋合成,即把源輸入經過split濾鏡得到的[main]的上半部分覆蓋到由cropvflip濾鏡級聯處理的輸出(這裏的[flip])上最終獲得了鏡像結果。input

一些濾鏡支持參數列表: 濾鏡名=由冒號(':')隔開的多個參數it

還存在所謂的源過濾器(即沒有輸入音頻/視頻 的過濾器),以及槽過濾器(即沒有任何音頻/視頻 輸出的過濾器)入門

相關文章
相關標籤/搜索