具体的には overlay フィルタを使って画像を映像の上に載せるが、そのままだと画像が透過しないので format フィルタでアルファチャンネルを追加し、lutyuv フィルタで透過具合を指定する。画像が動画よりも縦横のどちらかの解像度が超えている場合は予めリサイズするか、フィルタで小さくする。

ロゴ画像がアニメGIF, アニメPNGの場合は、ignore_loop 0 を入力ファイルの前に付ける。

Windows の ffmpeg で生放送する方法 : lutyuv
映像の上に映像をのせる overlay
リサイズする scale
映像を指定座標に切り取る crop
ffmpeg を使って透過したオーバーレイ動画を作る

プレビュー例
ffmpeg -re -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -an -f sdl -

透過64でオーバーレイ、big buck bunny

アニメGIFの場合
ffmpeg -re -i movie.mp4 -ignore_loop 0 -i input.gif -filter_complex [1]format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -an -f sdl -

動画で出力
ffmpeg -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -c:a copy output.mp4

画像を半分にリサイズする
ffmpeg -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]scale=iw/2:ih/2,format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -c:a copy output.mp4

左上を基準で半分にクロップする
ffmpeg -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]crop=iw/2:ih/2:0:0,format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -c:a copy output.mp4

One thought on “ffmpeg で動画にロゴ画像を追加し透過させる”

  • まりりん

    この度は光の速さでリクエストに答えていただきありがとうございました。

    使える小技まで載せていただき感謝です。

    無理せず更新の方頑張ってください。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)