この記事でわかること

  • eq フィルタで明度・コントラスト・ガンマ・彩度を変更するコマンド
  • 各パラメータの意味と値の範囲
  • 複数パラメータを組み合わせた実用的な補正
  • 動的に変化するパラメータの指定方法

テスト済みバージョン: FFmpeg 6.1(検証スクリプトで実 FFmpeg 実行確認)
対象 OS: Windows / macOS / Linux


基本コマンド

明度を上げる

ffmpeg -i input.mp4 -vf "eq=brightness=0.1" output.mp4

brightness の範囲は -1.01.0、デフォルトは 0。正の値で明るく、負の値で暗くなります。eq・curves・colorbalance を使い分ける全体像はFFmpegのカラーコレクション総合ガイドにまとめています。

コントラストを上げる

ffmpeg -i input.mp4 -vf "eq=contrast=1.5" output.mp4

contrast の範囲は -1000.01000.0、デフォルトは 11 で変化なし、大きいほどコントラストが強くなります。ハイライトやシャドウを別々に追い込みたい場合はcurves フィルタでトーンカーブ補正する方が細かく制御できます。

ガンマ補正する

ffmpeg -i input.mp4 -vf "eq=gamma=1.5" output.mp4

gamma の範囲は 0.110.0、デフォルトは 11 で変化なし、1.5 以上でシャドウが持ち上がります。

彩度を調整する

ffmpeg -i input.mp4 -vf "eq=saturation=1.5" output.mp4

saturation の範囲は 0.03.0、デフォルトは 10 でグレースケール、1.5 で鮮やかに。


パラメータ一覧

パラメータ説明デフォルト範囲
contrastコントラスト1.0-1000 〜 1000
brightness明度オフセット0.0-1.0 〜 1.0
saturation彩度倍率1.00.0 〜 3.0
gammaガンマ補正1.00.1 〜 10.0
gamma_r赤チャンネルのガンマ1.00.1 〜 10.0
gamma_g緑チャンネルのガンマ1.00.1 〜 10.0
gamma_b青チャンネルのガンマ1.00.1 〜 10.0
gamma_weightハイライト保護の重み1.00.0 〜 1.0

複数パラメータを同時指定する

ffmpeg -i input.mp4 -vf "eq=brightness=0.05:contrast=1.2:saturation=1.3:gamma=1.1" output.mp4

コロン(:)で区切って複数パラメータを同時指定できます。


チャンネル別ガンマ補正でホワイトバランスを調整する

ffmpeg -i input.mp4 -vf "eq=gamma_r=0.9:gamma_g=1.0:gamma_b=1.1" output.mp4

赤チャンネルを少し下げ、青を上げることで冷たい色味に調整できます。


グレースケール変換

ffmpeg -i input.mp4 -vf "eq=saturation=0" output.mp4

saturation=0 でグレースケール変換ができます。


動的パラメータ(時間で変化)

eq フィルタは FFmpeg 式(expression)に対応しています。

ffmpeg -i input.mp4 -vf "eq=brightness='0.1*sin(t)'" output.mp4

t は現在のタイムスタンプ(秒)です。明度が正弦波状に変化するエフェクトになります。


実用的な補正例

暗い映像を明るく補正する

ffmpeg -i input.mp4 -vf "eq=brightness=0.1:contrast=1.1:gamma=1.3" output.mp4

色あせた映像を鮮やかにする

ffmpeg -i input.mp4 -vf "eq=saturation=1.4:contrast=1.15" output.mp4

映像に硬質感を出す(シネマ風)

ffmpeg -i input.mp4 -vf "eq=contrast=1.2:saturation=0.85:gamma=0.95" output.mp4

NG例

NG例: saturatoin (スペルミス)
ffmpeg -i input.mp4 -vf "eq=saturatoin=1.5" output.mp4

パラメータ名のスペルミスは Invalid option エラーになります。


hue フィルタとの違い

機能eqhue
明度✓(オフセット)✓(オフセット)
コントラスト
ガンマ
彩度
色相回転

細かなトーン調整には eq、色相の変更には hue が適しています。


実測例

1080p/30fps、2分の H.264 動画に明度・コントラスト・彩度を同時に調整する例です。

ffmpeg -i input.mp4 \
  -vf "eq=brightness=0.04:contrast=1.15:saturation=1.2:gamma=1.05" \
  -c:v libx264 -crf 23 -preset medium -c:a copy \
  output.mp4

eq は軽量なフィルタですが、映像フィルタを通すため -c:v copy は使えません。8コア程度のデスクトップ環境では、処理時間は実時間の1〜2倍程度が目安です。

同じCRFで出力する場合、ファイルサイズは補正内容に左右されます。暗部を持ち上げるとノイズが見えやすくなり、サイズが増えることがあります。逆に彩度を落としたり暗くしたりすると、サイズが下がる場合もあります。環境により変動します。

実務では、brightness を大きく上げるより gammacontrast を少しずつ組み合わせる方が自然に見えることが多いです。暗い素材なら brightness=0.03gamma=1.1contrast=1.05 程度から始め、白飛びや黒つぶれが出ないか短い区間で確認します。

最終確認では肌色と白い背景を優先して見ます。

数値を少し変えただけでも印象が変わるため、設定値はメモして比較します。


つまずきやすいポイント

  • 症状: Invalid option でエラーになる。 原因: saturatoin のようなパラメータ名のスペルミス。対処: brightnesscontrastsaturationgamma の綴りを確認します。本記事のパラメータ一覧表の名前をそのままコピーすると確実です。

  • 症状: 明るくしたら白飛びが激しい。 原因: brightness を大きく上げ過ぎてハイライトが 255 に張り付いている。対処: brightness は小さめ(0.030.05)にとどめ、gamma=1.1contrast=1.05 を組み合わせると暗部だけ持ち上がり白飛びしにくくなります。

  • 症状: 動的式 brightness='0.1*sin(t)' が定数として扱われる。 原因: クォートが外れて式が評価されていない。対処: 式部分を必ず '...' で囲み、フィルタ全体を "..." で囲む二重クォート構造を保ちます。

  • 症状: 再エンコードで時間がかかる/-c:v copy が使えない。 原因: eq は画素を書き換える映像フィルタなので必ず再エンコードされる。対処: 音声は -c:a copy で保持し、画質はまず短い区間で crf を調整してから全体に適用します。


よくある質問

Q. brightnessgamma はどう違いますか。 A. brightness は全体に一定値を足すオフセットで、暗部も明部も均等に動きます。gamma は非線形で、主に中間〜暗部のトーンを持ち上げ(>1)たり沈め(<1)たりします。自然に明るくしたいときは gamma の方が破綻しにくいです。

Q. グレースケールにする一番簡単な方法は。 A. eq=saturation=0 です。色情報を完全に落とせます。

Q. ホワイトバランスを調整できますか。 A. gamma_rgamma_ggamma_b のチャンネル別ガンマで擬似的に補正できます。赤を下げ青を上げると寒色寄り、その逆で暖色寄りになります。

Q. contrast の範囲が広い(-1000〜1000)のはなぜですか。 A. 仕様上の許容範囲です。実用では 0.81.5 程度で十分で、極端な値はすぐ破綻します。1 が無変化の基準です。

Q. eqcurves はどちらを使うべきですか。 A. 全体の明度・彩度・ガンマをまとめて少し動かすなら eq が手軽です。ハイライトとシャドウを別々に追い込むなど細かいトーン制御が必要なら curves が適しています。


関連フィルタ

  • hue — 色相・彩度・輝度の調整
  • curves — トーンカーブベースの色補正
  • colorbalance — シャドウ・ミッド・ハイライトの色調補正

関連リソース

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

FFmpeg チートシート