RGBをトーンカーブで色調調整ができるcurves
フィルタの使い方。ペイントツールで同時に表示されるヒストグラムはhistogram
フィルタで表示できるが、Photoshopのようなメリハリの付いたグラフではなくてGIMPに近い感じになる。またPhotoshopのトーンカーブプリセットファイルのACVが読み込める。
基本コマンド
青の中央値を少し明るくする。
ffmpeg -i input -vf "curves=blue='0|0 0.5|0.58 1|1'" -pix_fmt yuv420p -c:a copy output
ffplay -i input -vf "curves=blue='0|0 0.5|0.58 1|1'"
ビンテージプリセットを指定する。
ffplay -i input -vf curves=vintage
Photoshopのカーブプリセットを指定し手動で緑も調整する。
ffplay -i input -vf "curves=psfile='MyCurvesPresets/purple.acv':green='0|0 0.45|0.53 1|1'"
gnuplotに渡す。
ffmpeg -re -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
gnuplot -p /tmp/curves.plt
公式ドキュメント:FFmpeg Filters Documentation : curves
オプション
“/“で数値指定もできるが”|“の使用推奨。”|“の左が入力値、右が出力値になる。色指定で大きく変化させない場合は最初と最後に0|0 1|1を追加し、中間を調整する。
- preset[int]
プリセットを指定する - 0, none:無指定。既定値
- 1, color_negative:明度が低くい色を反転する
- 2, cross_process:明度が小さく淡い色になる
- 3, darker:暗くする
- 4, increase_contrast:弱いコントラスト効果
- 5, lighter:明るくする
- 6, linear_contrast:少しのコントラスト効果
- 7, medium_contrast:中くらいのコントラスト効果
- 8, negative:明度差のある色を反転する
- 9, strong_contrast:強いコントラスト効果
- 10, vintage:ビンテージ、紙が日焼けて黄色っぽくなる
- master, m[string]
赤緑青すべてを調整する
範囲:0 から 1 まで - red, r[string]
赤を調整する
範囲:0 から 1 まで - green, g[string]
緑を調整する
範囲:0 から 1 まで - blue, b[string]
青を調整する
範囲:0 から 1 まで - all[string]
masterを除く赤緑青すべてを調整する。追加設定に使う
範囲:0 から 1 まで - psfile
Photoshopカーブプリセット(ACV)のファイルパスを指定して読み込む - plot
Gnuplotスクリプトを保存するファイル名とパスを指定する - interp[int]
補間アルゴリズムの指定 - 0, natural:3次スプライン補間。既定値
- 1, pchip:Piecewise Cubic Hermite Interpolating Polynomial(エルミート補間)。経緯
プリセットの挙動
What is the ffmpeg filter equivalent of “Automatic levels” for colors? – Video Production Stack Exchange
FFmpeg/vf_curves.c at master · FFmpeg/FFmpeg