ffmpeg將旋轉影像疊加到視訊上,如何透明旋轉影像未覆蓋的輸出區域?

ffmpeg將旋轉影像疊加到視訊上,如何透明旋轉影像未覆蓋的輸出區域?

我用來ffmpeg在電影上疊加圖片。需求是將圖片旋轉任一角度。使用filter_complex,我現在可以覆蓋旋轉的圖片。然而,圖片的輸出區域被填充為黑色且不透明。我檢查了文件,它說可以指定填充顏色,根據,但我沒有這樣做。有任何想法嗎?

我在這裡複製我的命令列:

./ffmpeg -i mersyvideo.mp4 -i avatar.jpg -filter_complex "[1:v] rotate=-30*PI/180:c=black@'0x00':ow=rotw(iw):oh=roth(ih) [rotate];[0:v][rotate] overlay=40:10" -codec:a copy output/overlayavatar.mp4

答案1

若要用透明填滿未覆蓋的區域,請使用以下選項c=none

ffmpeg \
  -i mersyvideo.mp4 \
  -i avatar.jpg \
  -filter_complex "
  [1:v]rotate=-30*PI/180:c=none:ow=rotw(iw):oh=roth(ih)[rotate];
  [0:v][rotate]overlay=40:10
  " \
  -codec:a copy \
  output/overlayavatar.mp4

請參閱rotate過濾器幫助:

fillcolor,c

設定用於填滿旋轉影像未覆蓋的輸出區域的顏色。有關此選項的一般語法,請檢查 ffmpeg-utils 手冊中的 (ffmpeg-utils)「顏色」部分。如果選擇特殊值“none”,則不列印背景(例如,如果從不顯示背景,則很有用)。

預設值為“黑色”。

相關內容