撮影した動画が「なんだか暗い」「色が浅い」と感じたら、FFmpeg だけで明るさ・コントラスト・彩度・色調を補正できます。手軽な eq、トーンカーブで追い込む curves、シャドウ/ミッド/ハイライト別に色を振る colorbalance の3つを、目的に応じて使い分けるのがポイントです。この記事では各フィルタの役割と使い分け、組み合わせた実践的なカラーコレクションまでを解説します。

動作確認: FFmpeg 6.1(ubuntu-latest / GitHub Actions CI 検証済み)/対象 OS: Windows / macOS / Linux


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.00明度(0が変化なし)
contrast-1000〜10001コントラスト(1が変化なし)
saturation0〜3.01彩度(1が変化なし、0はグレースケール)
gamma0.1〜101ガンマ補正(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 フィルタ — トーンカーブで細かく補正

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調整

フィルタの組み合わせ

eqcolorbalance を組み合わせた包括的なカラーコレクション:

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

関連リソース

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

FFmpeg チートシート

関連記事

  • 3D LUT でカラーグレーディング — .cube ファイルを動画に適用する
  • 動画のシャープネス・ぼかし — unsharp フィルタで鮮明さを調整する

動作確認: ffmpeg 6.1 / Ubuntu 24.04 (GitHub Actions runner) 一次ソース: 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 に変換、という流れにしてください。