ffmpeg 錯誤:-vf/-af/-filter 和 -filter_complex 不能一起使用

ffmpeg 錯誤:-vf/-af/-filter 和 -filter_complex 不能一起使用

我正在嘗試運行以下命令,它應該向影片添加浮水印並對其進行升級。

ffmpeg -i "in.avi" -i "\logo.png" -vf scale=854:-1  -preset 
veryfast -crf 20 -filter_complex overlay=5:5 "ou.mkv"

我收到以下錯誤。

Filtergraph 'scale=854:-1' was specified through the 
-vf/-af/-filter option for output stream 0:0, which is fed from 
a complex filtergraph. -vf/-af/-filter and -filter_complex 
cannot be used together for the same stream.

在我嘗試升級(沒有 -vf scale=854:-1)之前,cmd 會加浮水印。

我怎樣才能同時實現這兩個目標?

我已經嘗試過什麼?

  • 將 -vf 參數移到輸入之前、輸入之後等。

答案1

您可以使用一個過濾圖進行所有過濾:

ffmpeg -i input.avi -i logo.png -filter_complex \
"[0:v]scale=854:-2[scaled]; \
 [scaled][1:v]overlay=5:5[out]" \
-map "[out]" -map 0:a -c:v libx264 -c:a copy output.mkv
  • [0:v]指第一個輸入的視訊串流(input.avi在此範例中)。[1:v]是來自第二個輸入的影片(logo.png在本例中)。

  • 音訊是蒸氣複製在這個例子中,而不是被重新編碼;假設您的第一個輸入有音訊。

  • 最佳實踐是手動命名過濾器輸入和輸出(如本例所示),而不是依賴預設值,否則可能會導致不正確的流選擇。

  • -2在裡面縮放視訊濾鏡使用而非-1因為 x264 要求在輸出到 4:2:0 色度子取樣時輸出可被 2 整除:

如果其中一個值為 -n 且 n > 1,則縮放篩選器也會使用一個值來維持輸入影像的縱橫比,該縱橫比是根據其他指定的維度計算得出的。然而,之後它將確保計算出的尺寸可被 n 整除,並在必要時調整該值。

相關內容