指定した場所を四角で囲ったり、埋めたりできるdrawbox
フィルタの使い方。四角以外で囲むならgeq
フィルタを使う。
基本コマンド
-
オプション無指定の場合は上下左右の端に4ピクセルの黒枠が描写される
ffmpeg -i input -vf drawbox output
-
左上の縦横10ピクセルの位置から幅100X200に太さ8ピクセルの青枠を描写
ffmpeg -i input -vf drawbox=10:10:100:200:blue:8 output
ffmpeg -i input -vf drawbox=x=10:y=10:w=100:h=200:c=blue:t=8 output - 左上に縦横10ピクセルから幅200X100に枠内を輝度反転した四角を描写
ffmpeg -i input -vf drawbox=10:10:200:100:invert:fill output
- ボックス部分だけ透過させる。
format
フィルタでアルファチャンネルをつけても最初は全画面255(透明ではない)なので、lutyuv
フィルタで 0(透明)にしてボックス部分だけ255にしている。アルファチャンネルの確認にはalphaextract
フィルタを使う
ffmpeg -i input -vf format=yuva420p,lutyuv=a=0,drawbox=0:0:100:100:replace=1 output
ffplay -i input -vf format=yuva420p,lutyuv=a=0,drawbox=0:0:100:100:replace=1,alphaextract - 透過部分をcolor, cの指定色に入れ替えてアルファチャンネルをなくす
ffmpeg -i alpha.png -vf "[0]split=2[bg][fg];[bg]drawbox=c=blue@1:replace=1:t=fill[bg];[bg][fg]overlay=format=auto" output.png
FFmpeg: Convert transparency to a certain color – Super User