在ffmpeg的濾鏡中,有簡單濾鏡(simple filter)和復雜濾鏡(complex filter)兩種。
使用簡單濾鏡時,用-vf選項,使用復雜濾鏡時,使用-filter_complex或-lavfi。
那么什么時候用簡單濾鏡,什么時候用復雜濾鏡?
其實很簡單:是否只有一個輸入文件和一個輸出文件,如果是,用簡單濾鏡,否,則應該用復雜濾鏡
執行一個命令試試
ffmpeg -hide_banner -i big_buck_bunny.mp4 -i doggie2.png -lavfi "overlay=x=50:y=50" out.mp4 -y
上面的命令等效於
ffmpeg -hide_banner -i big_buck_bunny.mp4 -i doggie2.png -filter_complex "overlay=x=50:y=50" out.mp4 -y
上面命令作用是給視頻添左上角加一個水印,命令可以成功執行,打開輸出文件可以看到doggie已經成功加上去了

為了驗證上面的結論,咱們把命令換成下面的
ffmpeg -hide_banner -i big_buck_bunny.mp4 -i doggie2.png -vf "overlay=x=50:y=50" out.mp4 -y
上面命令把-filter_complex換成了-vf,結果自然是會出錯的,錯誤日志如下

紅框中的日志說的很清楚,對於簡單濾鏡,只能有一個輸入輸出
所以,當有多個輸入文件時,需要使用復雜濾鏡。
文章目錄
ffmpeg第1篇:日志級別控制、保存日志到指定文件、處理進度查詢
ffmpeg第2篇:簡單濾鏡與復雜濾鏡的區別
ffmpeg第3篇:為視頻添加靜態水印
ffmpeg第4篇:為視頻添加動態水印
ffmpeg第5篇:讓水印圖片旋轉起來
ffmpeg第6篇:濾鏡語法
ffmpeg第7篇:數據流選擇神器-map指令
