具体的にはoverlay
フィルタを使って画像を映像の上に載せるが、そのままだと画像が透過しないのでformat
フィルタでアルファチャンネルを追加し、lutyuv
フィルタで透過具合を指定する。画像が動画よりも縦横のどちらかの解像度が超えている場合は予めリサイズするか、フィルタで小さくする。
ロゴ画像がアニメGIF、アニメPNGの場合は、-ignore_loop 0を入力ファイルの前に付ける。
- リサイズする scale
- 映像を指定座標に切り取る crop
- 映像の上に映像をのせる overlay
- Windows の ffmpeg で生放送する方法 : lutyuv
- 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 -
アニメ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
この度は光の速さでリクエストに答えていただきありがとうございました。
使える小技まで載せていただき感謝です。
無理せず更新の方頑張ってください。