RGBをトーンカーブで色調調整ができるcurvesフィルタの使い方。ペイントツールで同時に表示されるヒストグラムはhistogramフィルタで表示できるが、Photoshopのようなメリハリの付いたグラフではなくてGIMPに近い感じになる。またPhotoshopのトーンカーブプリセットファイルのACVが読み込める。

ffmpeg でヒストグラムを表示する

基本コマンド

青の中央値を少し明るくする。
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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)