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

左が元の映像、右が boxblur=12:2。半径 12 のぼかしを 2 回かけた状態です。

素材: Tears of Steel (CC) Blender Foundation | mango.blender.org、CC BY 3.0。映画の1フレームを切り出し、フィルターで加工しています。

基本コマンド

軽いぼかし

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 ボックスブラーを繰り返す回数 2
chroma_radius 彩度(色)のぼかし半径 luma_radius と同じ
chroma_power 彩度の繰り返し回数 luma_power と同じ
alpha_radius アルファチャンネルのブラー半径 luma_radius と同じ
alpha_power アルファの繰り返し回数 luma_power と同じ

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

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

画面全体が同じ強さでぼけます。人物などの被写体もぼけるので、背景だけをぼかす用途には使えません。一部だけをぼかすときは、次の方法を使います。

特定領域だけをぼかす

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、各コマンドを1つずつ順に実行。数値はデータセットで公開しています。

数字の読み方

処理時間には、ぼかしの計算が上乗せされます。同じ素材・同じ設定で、フィルタなしの再エンコードは 27.97 秒でした。boxblur を入れると 59.37 秒です。増えた時間は、ぼかしの処理の分です。ぼかした映像は細かい部分が減るので(下のサイズを参照)、x264 のエンコードはむしろ速くなります。同じ計測のほかのフィルタは、720p への縮小が 18.43 秒、curves が 42.01 秒、colorbalance + eq が 53.29 秒でした。boxblur はこの中でいちばん重い部類です。1つのスレッドだけで処理し、luma_power の回数だけぼかしを繰り返すためです。半径を大きくしても、処理時間はほとんど変わりません。

それでも、動画の再生時間よりは速く終わります。120秒の素材が 59.37 秒で、再生時間の半分以下でした(32スレッドの CPU の場合)。コア数の少ないパソコンでは、ここまで速くはなりません。

ファイルサイズは 83% 小さくなりました。フィルタなしの再エンコードは 86.26 MB、boxblur を入れると 14.7 MB です。CRF は、同じ見た目の画質になるようにデータ量を配分する設定です。ぼかすと細かい部分(高周波成分)が消えるので、x264 が記録すべき情報そのものが減ります。

ぼかしには -c copy(再エンコードせずに書き写す指定)は使えません。同じ計測で、ストリームコピーで済む処理は、ファイルの入れ物を書き換えるだけなので 0.41〜0.49 秒で終わりました。ぼかしは画素を書き換えるので、デコード → フィルタ → 再エンコードをすべて行う必要があります。長い動画の処理時間を見積もるときは、まず再エンコードが必要かどうかを考えてください。

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

フィルタ 特徴 処理時間
boxblur 均一なぼかし。繰り返しでガウシアンに近づく。1つのスレッドで処理 2.71 秒(boxblur=10:3)
gblur 数学的なガウシアン分布によるなめらかなぼかし。複数のスレッドで処理 0.66 秒(gblur=sigma=13)
unsharp ぼかし+シャープネス制御が一体。複数のスレッドで処理。マトリクスに上限があり、強くはぼかせない 0.76 秒(unsharp=13:13:-1.5:5:5:0.0)

処理時間は、1080p・300フレームの非圧縮映像にフィルタだけをかけ、-f null に出力して計った値です(Core i9-14900KF / FFmpeg 8.1、各1回。フィルタなしは 0.27 秒)。gblur=sigma=13 は、boxblur=10:3 とほぼ同じ強さのぼかしです。boxblur の時間は半径ではなく繰り返し回数で変わり、boxblur=2:3 が 2.61 秒、boxblur=100:3 が 2.85 秒、boxblur=10:1 が 1.75 秒、boxblur=10:6 が 5.98 秒でした。

手軽なぼかしなら boxblur、仕上がりを重視するなら gblur を選びます。ただし、速さは boxblur の利点になりません。複数のコアがあるパソコンでは、gblur のほうが速く終わります。

NG例

NG例: 半径が大きすぎる(1080p の上限は 270。chroma_radius を小さくすれば 540 まで)
ffmpeg -i input.mp4 -vf "boxblur=600:1" output.mp4

半径に指定できるのは、0 から、ぼかす画像の「幅と高さの短いほうの半分」までです。1080p の輝度では 540 が上限なので、600 を指定すると Invalid luma_param radius value 600, must be >= 0 and <= 540 というエラーになります。また、多くの動画は色の情報を縦横半分の大きさで持っている(4:2:0)ので、色の上限は 270 です。chroma_radius を指定しないと luma_radius と同じ値になるため、271〜540 もエラーになります(300 なら Invalid chroma_param radius value 300, must be >= 0 and <= 270)。輝度をもっと強くぼかしたいときは、boxblur=500:1:250:1 のように色の半径を小さくします。0 はエラーになりませんが、ぼかしはかかりません。

関連フィルタ

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

よくある質問

boxblur と gblur、どっちを使う?

boxblur は、サムネイルのようなぼかしなら十分です。gblur はより自然なぼけ方になり、複数のスレッドで処理するので、同じくらいの強さなら boxblur より速く終わります。ただし、どちらも顔や文字を確実に隠す方法ではありません。ぼかしには元の映像の情報が残るためです。絶対に見られたくないものは、drawbox の t=fill などの不透明な色で塗りつぶしてください。

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

対象の部分を crop で切り出してぼかし、同じ座標に overlay で重ねます。入力の [0] を2回使うので、-vf ではなく -filter_complex に書きます(-vf に書くとエラーになります)。

ffmpeg -i input.mp4 -filter_complex "[0]crop=200:100:50:50,boxblur=10[b];[0][b]overlay=50:50" output.mp4

ぼかしが思ったより弱い

boxblur で指定するのは、強さではなく半径です。半径 2 では、5×5 ピクセルの範囲しか平均しません。1080p ではっきりぼかしたいなら、8〜15 くらいを使ってください。

boxblur を多段適用できる?

できます。boxblur=10:1,boxblur=10:1 のように、カンマでつなげます。軽いぼかしを何回か重ねるほうが、1回で強くかけるより、自然なガウス分布に近いぼけ方になります。

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

入力にアルファチャンネル(透明度の情報)があれば残ります。ただし、alpha_radius と alpha_power を指定しないと、輝度と同じ設定でアルファもぼけて、透明な部分との境目がなだらかになります。アルファをぼかしたくないときは、boxblur=4:1:alpha_power=0 のように alpha_power=0 を付けてください。RGBA の入力は、boxblur が扱える形式(gbrap)に自動で変換されてから処理されます。