boxblur フィルタの適用前後の比較。左が元の鮮明な映像、右は boxblur=12:2 で全体が強くぼけた状態

左が元映像、右が boxblur=12:2。半径 12 を 2 回適用した実際のぼけ具合です。

素材: Big Buck Bunny © Blender Foundation, CC BY 3.0

この記事でわかること

  • boxblur フィルタでボックスブラーをかけるコマンド
  • 半径(luma_radius)と繰り返し(luma_power)の意味
  • 輝度・彩度を独立して制御する方法
  • 映像全体と特定領域(crop+overlay)へのぼかし適用

動作確認: FFmpeg 8.1 / Windows — 本記事のコマンド 8 件を検証スクリプトで実行し、全て成功しました(2026-09-06) 対象 OS: Windows / macOS / Linux


基本コマンド

軽いぼかし

ffmpeg -i input.mp4 -vf "boxblur=2:1" output.mp4

引数の順序は luma_radius:luma_power です。2:1 は軽いぼかし。

強いぼかし

ffmpeg -i input.mp4 -vf "boxblur=10:3" output.mp4

半径 10、繰り返し 3 で強めのぼかしになります。逆に輪郭を際立たせたい場合はunsharp フィルタでシャープネスを調整する方法が向いています。


パラメータ詳細

boxblur=luma_radius:luma_power[:chroma_radius:chroma_power[:alpha_radius:alpha_power]]
パラメータ 意味 デフォルト
luma_radius 輝度チャンネルのブラー半径 2
luma_power ボックスブラーを繰り返す回数 1
chroma_radius 彩度チャンネルのブラー半径 luma_radius と同じ
chroma_power 彩度の繰り返し回数 luma_power と同じ
alpha_radius アルファチャンネルのブラー半径 0(適用なし)
alpha_power アルファの繰り返し回数 0

輝度だけぼかして色情報を保持する

ffmpeg -i input.mp4 -vf "boxblur=luma_radius=10:luma_power=3:chroma_radius=0:chroma_power=0" output.mp4

chroma_radius=0 にすると彩度はぼかされません。細かなテクスチャだけを消したいときに有効です。


名前付き引数で書く

数値だけの省略形は順序を間違えやすいため、名前付き引数が推奨です。

ffmpeg -i input.mp4 \
  -vf "boxblur=luma_radius=5:luma_power=2" \
  output.mp4

繰り返し回数(power)の効果

ボックスブラーを複数回繰り返すと、ガウシアンブラーに近い滑らかなぼかしになります。

luma_power 特徴
1 シンプルなボックスブラー
2 やや滑らか
3 ガウシアンブラーに近い滑らか
4+ さらに滑らか(処理時間増加)

映像全体をぼかす(プライバシー保護・背景ぼかし)

ffmpeg -i input.mp4 -vf "boxblur=20:5" output.mp4

SNSへの投稿前に背景をぼかす場合などに使えます。


特定領域だけをぼかす

crop で切り出した領域にぼかしを適用し、overlay で元映像に重ねます。顔やナンバープレートを隠す目的なら、追従処理まで含めた動画の一部にモザイク・ぼかしをかける手順も参考になります。

ffmpeg -i input.mp4 \
  -vf "split[a][b]; \
    [a]crop=200:100:50:50,boxblur=15:3[blurred]; \
    [b][blurred]overlay=50:50" \
  output.mp4
  • crop=W:H:X:Y — 幅200・高さ100、座標(50,50)から切り出し
  • overlay=X:Y — 元映像の(50,50)に重ねる

静止画への適用

ffmpeg -i input.jpg -vf "boxblur=5:2" output.jpg

実測: 処理時間とサイズ

計測したのは次のコマンドです。

ffmpeg -i input.mp4 -vf boxblur=10:3 -c:v libx264 -crf 23 -preset medium -an output.mp4
項目 実測値
処理時間 59.37 秒(実時間の 2.02 倍速)
出力サイズ 14.7 MB
フィルタなし再エンコードとの比較 -83%

計測環境: Intel Core i9-14900KF(32スレッド)/ FFmpeg 8.1 (gyan.dev) / Windows。素材は 1920x1080・30fps・120秒・351.4 MB の H.264 動画(Big Buck Bunny をループ、CC BY 3.0)。2026-09-05、各コマンドを逐次実行。数値はデータセットで公開しています。

数字の読み方

時間はフィルタ代がそのまま乗る。 同じ素材・同じ設定でフィルタを外した再エンコードは 27.97 秒でした。boxblur を挟むと 59.37 秒。差はすべてぼかし処理のコストです。同じ計測での他フィルタは 720p へのスケールが 18.43 秒、curves が 42.01 秒、colorbalance + eq が 53.29 秒で、boxblur はこの中で最も重い部類に入ります。半径を大きく取ると全ピクセルを何度も走査するためです。

それでも実時間よりは速い。 120秒の素材が 59.37 秒で終わっています。この記事が以前「処理時間は実時間の1.2〜2.5倍程度」と書いていたのは外れで、32スレッドの CPU では実時間の半分以下で完了しました。コア数が少ないマシンではこの倍率は縮みます。

サイズが -83% 落ちるのはぼかしの副作用。 CRF は「同じ見た目の品質」を狙ってビットを配分しますが、ぼかしは高周波の細部を消してしまうため、x264 が符号化すべき情報自体が消えます。フィルタなしの再エンコードが 86.26 MB だったのに対し、boxblur を通すと 14.7 MB、-83% です。以前ここに書いていた「5〜20%程度」という見積もりは桁が違っていました。ぼかしを「軽い加工」として扱うと出力サイズを見誤ります。

-c copy では逃げられない。 同じ計測でストリームコピー系の処理はコンテナを書き換えるだけなので 0.41〜1.03 秒で終わっています。ぼかしはピクセルを書き換える操作なので、デコード → フィルタ → 再エンコードの全工程が必須で、この 0.41 秒台の世界には戻れません。長尺素材で処理時間を見積もるときは、まず「再エンコードが要るか」を判断してください。


gblur(ガウシアンブラー)との比較

フィルタ 特徴 処理速度
boxblur 均一なぼかし。繰り返しでガウシアンに近づく 速い
gblur 数学的なガウシアン分布によるなめらかなぼかし やや遅い
unsharp ぼかし+シャープネス制御が一体 中程度

シンプルで高速なぼかしには boxblur、品質重視なら gblur が選択肢です。


NG例

NG例: 半径に 0 を指定する(luma_radius=0 はエラー)
ffmpeg -i input.mp4 -vf "boxblur=0:1" output.mp4

luma_radius0 を指定するとエラーになります。最小値は 1 です。


関連フィルタ

  • gblur — ガウシアンブラー
  • unsharp — アンシャープマスク(ブラーとしても使用可能)
  • smartblur — エッジを保ちながらぼかす
  • pixelize — ピクセレート(モザイク)効果

よくある質問

boxblur と gblur、どっちを使う?

boxblur は高速で「サムネイル風ぼかし」用途に十分。gblur は計算量と引き換えに自然なボケに近い結果が得られる。プライバシー目的ならどちらでも OK。

矩形範囲だけぼかすには?

対象を crop して別ストリーム化 → blur → 同座標に overlay: [0]crop=W:H:X:Y,boxblur=10[b];[0][b]overlay=X:Y

ぼかしが思ったより弱い

boxblur は半径(radius)指定です — 強度ではない。半径 2 だと 5×5 ピクセルしか平均化しません。1080p で「ちゃんと見えるぼかし」なら 8〜15 を使ってください。

boxblur を多段適用できる?

はい、chain 可能: boxblur=10:1,boxblur=10:1。安価な多段の方が一発強掛けより自然なガウス分布に近い結果になります。

アルファチャンネルは保持される?

入力が RGBA なら保持されます — FFmpeg はアルファを別途処理します。overlay 用途では入力を事前に RGBA に変換してください。