指定した場所を四角で囲ったり、埋めたりできる drawbox フィルタの使い方。四角以外で囲むなら geq フィルタを使う。

数式で線や円、模様が描ける 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
    ffmpeg -i input -vf format=yuva420p,lutyuv=a=0,drawbox=0:0:100:100:replace=1,alphaextract output

    アルファチャンネルをグレーで出力する alphaextract

公式ドキュメント:FFmpeg Filters Documentation : drawbox

オプション

  • x[string]
    ボックスを描写する左上の横座表の指定。評価式が使える
    既定値:0
  • y[string]
    ボックスを描写する左上の縦座表の指定。評価式が使える
    既定値:0
  • width, w[string]
    ボックスの横幅。評価式が使える
    既定値:0
  • height, h[string]
    ボックスの縦幅。評価式が使える
    既定値:0
  • color, c[string]
    ボックスの色指定。色名指定とRRGGBB形式、invert (輝度の反転)が使える。色の書式設定 を参考
    既定値:black
  • thickness, t[string]
    ボックスの線の太さ。w, h をともに 0 にしていると映像の上下左右の端に枠が描写される。fill を使うと枠内が指定した色で埋まる。評価式が使える
    既定値:4
  • replace[boolean]
    アルファチャンネルがあれば、そこには255の値を描写する
    既定値:0

x, y, w, h と t に使える評価式

ffmpeg で使える計算書式 を使って複雑な計算ができる。時間で変わるオプションがないので途中でサイズは変えられない。

  • in_w, iw:入力映像の横幅
  • in_h, ih:入力映像の縦幅
  • hsu:横方向のクロマサブサンプル値。yuv422p なら 2
  • vsub:縦方向のクロマサブサンプル値。yuv422p なら 1
  • sar:サンプルアスペクト比
  • dar:(w / h) * sar
  • x:x で指定した値
  • y:y で指定した値
  • w:ボックスの横幅
  • h:ボックスの縦幅
  • t:ボックスの線の太さ

コメントを残す

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

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