撮影した動画が「なんだか暗い」「色が浅い」と感じたら、FFmpeg だけで明るさ・コントラスト・彩度・色調を補正できます。手軽な eq、トーンカーブで追い込む curves、シャドウ/ミッド/ハイライト別に色を振る colorbalance の3つを、目的に応じて使い分けるのがポイントです。この記事では各フィルタの役割と使い分け、組み合わせた実践的なカラーコレクションまでを解説します。
動作確認: FFmpeg 6.1(検証スクリプトで実 FFmpeg 実行確認)/対象 OS: Windows / macOS / Linux
eq フィルタ — 明度・コントラスト・彩度の基本補正
最もシンプルなカラー調整フィルタです。各パラメータの詳しい挙動はeq フィルタで明度・コントラスト・彩度を調整するで個別に掘り下げています。
ffmpeg -i input.mp4 -vf "eq=brightness=0.1:contrast=1.2:saturation=1.3:gamma=1.0" output.mp4
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
brightness | -1.0〜1.0 | 0 | 明度(0が変化なし) |
contrast | -1000〜1000 | 1 | コントラスト(1が変化なし) |
saturation | 0〜3.0 | 1 | 彩度(1が変化なし、0はグレースケール) |
gamma | 0.1〜10 | 1 | ガンマ補正(1が変化なし) |
よく使う補正例
明るさを少し上げてコントラストを強める:
ffmpeg -i input.mp4 -vf "eq=brightness=0.05:contrast=1.3" output.mp4
グレースケールに変換:
ffmpeg -i input.mp4 -vf "eq=saturation=0" output.mp4
curves フィルタ — トーンカーブで細かく補正
制御点の取り方やチャンネル別の追い込みはcurves フィルタでトーンカーブ色補正するで詳しく扱っています。S字カーブ(コントラスト強調)の例:
ffmpeg -i input.mp4 -vf "curves=all='0/0 0.25/0.15 0.5/0.5 0.75/0.85 1/1'" output.mp4
all='入力/出力 ...' の形式で制御点を指定します(0〜1の正規化値)。
チャンネル別の調整
赤チャンネルを強調(暖色系に補正):
ffmpeg -i input.mp4 -vf "curves=red='0/0 0.5/0.6 1/1'" output.mp4
青チャンネルを下げる(寒色を弱める):
ffmpeg -i input.mp4 -vf "curves=blue='0/0 0.5/0.4 1/0.9'" output.mp4
プリセットを使う
ffmpeg -i input.mp4 -vf "curves=preset=vintage" output.mp4
利用可能なプリセット: none, color_negative, cross_process, darker, increase_contrast, lighter, linear_contrast, medium_contrast, negative, strong_contrast, vintage
colorbalance フィルタ — シャドウ/ミッドトーン/ハイライトの色調整
シャドウ部の青みを強め(寒色系の暗部)、ハイライト部を少し暖かくする例:
ffmpeg -i input.mp4 -vf "colorbalance=bs=0.1:rs=-0.1:gh=0.1" output.mp4
| パラメータ | 説明 |
|---|---|
rs/gs/bs | シャドウのR/G/B調整(-1〜1) |
rm/gm/bm | ミッドトーンのR/G/B調整 |
rh/gh/bh | ハイライトのR/G/B調整 |
フィルタの組み合わせ
eq と colorbalance を組み合わせた包括的なカラーコレクション:
ffmpeg -i input.mp4 -vf "eq=brightness=0.05:contrast=1.1,colorbalance=rs=-0.05:bs=0.05" output.mp4
どのフィルタを選ぶか
| やりたいこと | 推奨フィルタ |
|---|---|
| 明度・コントラスト・彩度を手軽に調整 | eq |
| トーンカーブで細かく制御 | curves |
| シャドウ/ミッドトーン/ハイライトを色別に調整 | colorbalance |
| .cubeファイルのLUTを適用 | lut3d |
実測例
1080p/30fps、2分の H.264 動画に軽いカラー補正をかける例です。
ffmpeg -i input.mp4 \
-vf "eq=brightness=0.04:contrast=1.12:saturation=1.15,colorbalance=bs=0.04:rh=0.03" \
-c:v libx264 -crf 23 -preset medium -c:a copy \
output.mp4
eq と colorbalance は比較的軽いフィルタですが、映像フィルタを使う以上、映像ストリームは再エンコードされます。8コア程度のデスクトップ環境では、処理時間は実時間の1〜2倍程度に収まることが多いです。
ファイルサイズはフィルタそのものより -crf、-preset、入力映像のノイズ量に左右されます。色を持ち上げると暗部ノイズが目立ち、同じCRFでもサイズが少し増えることがあります。環境により変動します。
関連リソース
よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。
関連記事
- 3D LUT でカラーグレーディング — .cube ファイルを動画に適用する
- 動画のシャープネス・ぼかし — unsharp フィルタで鮮明さを調整する
動作確認: ffmpeg 6.1 / Ubuntu 24.04 (検証スクリプトで実行確認) 一次ソース: ffmpeg.org/ffmpeg-filters.html#curves / ffmpeg.org/ffmpeg-filters.html#eq / ffmpeg.org/ffmpeg-filters.html#colorbalance
よくある質問
eq と curves、どちらを使う?
eq は全体の明るさ・コントラスト・彩度の一括調整。curves はハイライト / ミッドトーン / シャドウを独立にシェイプ。実際のカラーグレーディングには curves の方が近い。
ガンマと明るさの違いは?
明るさは線形シフト。ガンマは非線形カーブで、ハイライトと黒を潰さずミッドトーンだけ持ち上げる。一般にガンマの方が自然な見た目に。
補正後の動画が緑っぽくなった
グリーンチャンネルか彩度を強く触りすぎた可能性。一旦リセットして全体に均一に補正をかけ、最後に個別チャンネルを微調整してください。
3D LUT を当てたい
可能です — lut3d は .cube ファイルを受け取ります: ffmpeg -i in.mp4 -vf lut3d=look.cube out.mp4。グレーディング配布の標準形式。
HDR 色は保持される?
単純な eq / curves パイプラインだと HDR ハイライトはクリップします。HDR 素材なら zscale で一旦 linear に → グレーディング → 再度 PQ/HLG に変換、という流れにしてください。