結合-vf yadif,format = yuv420p和-filter_complex獲得水印


0

我有一個使用-vf的ffmpeg命令對視頻進行去隔行處理,並產生具有4:2:0色度二次採樣的像素格式:

ffmpeg -i input.mp4 -vf yadif,format=yuv420p \ 
-force_key_frames expr:gte(t\,n_forced/2) \
-c:v libx264 -crf 23 output.mp4

此外,我還有另一個ffmpeg命令可放入水印:

ffmpeg -i input.mp4 -i logo.png \
-filter_complex "[1][0]scale2ref=iw/5:ow*450/450[wm][vid];[vid][wm]overlay=W-w-W*3/100:H-h-H*1/100:enable='gt(t,30)'" \
-c:v libx264 -crf 23 output.mp4

我試圖將它們放在一起並出現此錯誤:

-vf/-af/-filter and -filter_complex cannot be used together for the same stream

我讀到-filter_complex可用於簡單過濾器,並且我們可以將過濾器鏈接在一起,並以逗號分隔,因此我創建了一個不帶-vf的新命令:

ffmpeg -i input.mp4 -i logo.png \
filter_complex "[1][0]scale2ref=iw/5:ow*450/450[wm][vid];[vid][wm]overlay=W-w-W*3/100:H-h-H*1/100:enable='gt(t,30)',yadif,format=yuv420p" -force_key_frames expr:gte(t\,n_forced/2) -c:v libx264 -crf 23 output.mp4

這是組合這兩個過濾器的正確方法嗎?

控制台不會顯示上述錯誤,但會顯示一個新錯誤:

Missing ')' or too many args in 'gte(t\,n_forced/2)'
Invalid force_key_frames expression 'gte(t\,n_forced/2)'
Error initializing output stream 0:0 --
[aac @ 0000022fbe6eacc0] Qavg: 118.000
[aac @ 0000022fbe6eacc0] 2 frames left in the queue on closing
Conversion failed!

請幫助!

1

Use

ffmpeg -i input.mp4 -i logo.png \
-filter_complex "[0]yadif,format=yuv420p[main];[1][main]scale2ref=iw/5:ow*450/450[wm][vid];[vid][wm]overlay=W-w-W*3/100:H-h-H*1/100:enable='gt(t,30)'" \
-force_key_frames "expr:gte(t,n_forced/2)" -c:v libx264 -crf 23 -c:a copy output.mp4