を使って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)「色」セクションを確認してください。特別な値「なし」を選択した場合、背景は印刷されません (背景が表示されない場合などに便利です)。
デフォルト値は「黒」です。