この記事でわかること

  • drawbox フィルタで矩形を描画するコマンド
  • 座標・サイズ・色・線幅・塗りつぶしの指定方法
  • drawgrid フィルタでグリッドを重ねる方法
  • 動画解析・物体検出結果の可視化への応用

テスト済みバージョン: FFmpeg 6.1(ubuntu-latest / CI検証済み)
対象 OS: Windows / macOS / Linux


基本コマンド

赤い矩形を描画する(輪郭のみ)

ffmpeg -i input.mp4 \
  -vf "drawbox=x=50:y=50:w=200:h=100:color=red:t=3" \
  output.mp4

t=3 は線の幅(ピクセル)です。

塗りつぶし矩形

ffmpeg -i input.mp4 \
  -vf "drawbox=x=50:y=50:w=200:h=100:[email protected]:t=fill" \
  output.mp4

t=fill で塗りつぶし(color に透明度を指定可能)。


パラメータ詳細

パラメータ説明
x左上X座標x=50
y左上Y座標y=50
w幅(iw で入力幅を使用可能)w=200
h高さ(ih で入力高さを使用可能)h=100
color色(名前またはHEX、@透明度 可)[email protected]
t線幅(ピクセル)または fillt=3 / t=fill

色の指定方法

# 色名で指定
ffmpeg -i input.mp4 -vf "drawbox=x=10:y=10:w=100:h=50:color=green:t=2" output.mp4

# HEXで指定
ffmpeg -i input.mp4 -vf "drawbox=x=10:y=10:w=100:h=50:color=0xFF0000:t=2" output.mp4

# 半透明で指定
ffmpeg -i input.mp4 -vf "drawbox=x=10:y=10:w=100:h=50:[email protected]:t=fill" output.mp4

映像全体を囲む枠を描く

ffmpeg -i input.mp4 \
  -vf "drawbox=x=0:y=0:w=iw:h=ih:color=yellow:t=5" \
  output.mp4

iw(入力幅)・ih(入力高さ)を使って映像サイズに合わせた枠を描けます。


中央に十字線を描く

ffmpeg -i input.mp4 \
  -vf "drawbox=x=iw/2-1:y=0:w=2:h=ih:color=white:t=fill, \
       drawbox=x=0:y=ih/2-1:w=iw:h=2:color=white:t=fill" \
  output.mp4

横線と縦線を組み合わせて十字線を作ります。


複数の矩形を描く

ffmpeg -i input.mp4 \
  -vf "drawbox=x=20:y=20:w=150:h=80:color=red:t=3, \
       drawbox=x=200:y=100:w=120:h=60:color=blue:t=3" \
  output.mp4

カンマで複数の drawbox を連結できます。


drawgrid フィルタでグリッドを重ねる

drawgrid は等間隔のグリッドを描画します。

ffmpeg -i input.mp4 \
  -vf "drawgrid=width=100:height=100:thickness=1:[email protected]" \
  output.mp4
パラメータ説明
widthグリッドのセル幅
heightグリッドのセル高さ
thicknessグリッド線の太さ
colorグリッド線の色

三分割構図ガイドラインを描く

ffmpeg -i input.mp4 \
  -vf "drawgrid=width=iw/3:height=ih/3:thickness=1:[email protected]" \
  output.mp4

撮影構図確認やポストプロダクションのガイドラインとして利用できます。


drawtext と組み合わせてラベル付きバウンディングボックス

ffmpeg -i input.mp4 \
  -vf "drawbox=x=100:y=80:w=200:h=120:color=lime:t=2, \
       drawtext=text='Object':x=102:y=60:fontsize=20:fontcolor=lime" \
  output.mp4

特定の時間範囲だけ表示する

FFmpeg 式を使って時間条件を設定できます。

ffmpeg -i input.mp4 \
  -vf "drawbox=x=50:y=50:w=200:h=100:color=red:t=3:enable='between(t,2,5)'" \
  output.mp4

enable='between(t,2,5)' で 2〜5 秒の間だけ表示します。


注意点

  • xywhiwih(入力サイズ)などの FFmpeg 式が使えます。
  • color に透明度(@値)を付けると半透明になりますが、t=fill と組み合わせて使います。
  • drawbox-vf フィルタチェインで複数連結できます(カンマ区切り)。

関連フィルタ

関連リソース

よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。

FFmpeg チートシート