カラースペースの変換を行うcolorspaceフィルタの使い方。このフィルタは高ビット深度の映像にも対応していて、colormatrixフィルタよりも処理が速い。

色の変換色を変更するcolormatrix
色関係の設定のまとめ

基本コマンド

BT.709に統一して変換。
ffmpeg -i input -vf colorspace=all=bt709 -c:a copy output

色情報を設定するときは入力データがないとエラーになるので、ない、または不明のときは入出力の両方を指定する。コマンド例はsrgbのRGBソースからbt709の一般的な動画用に変換する。
colorspace=all=bt709:iprimaries=bt709:itrc=srgb:ispace=bt709:fast=1

公式Wiki:colorspace – FFmpeg
公式ドキュメント:FFmpeg Filters Documentation : colorspace

オプション

入力した映像のshowinfoフィルタで表示されるcolor_range、color_space、color_primaries、color_trcが不明(unknown)だとエラーになり変換されない。不明のときはiall、ispace、irange、iprimaries、itrcで指定するか、入力オプションで個別に指定する。出力カラーレンジと出力カラーフォーマットは未指定だと入力値と同じ値になり変換されない。

  • all[int]
    出力時のcolor_space、color_primaries、color_trcを同時に変換する
    • 1, bt470m
    • 2, bt470bg
    • 3, bt601-6-525
    • 4, bt601-6-625
    • 5, bt709
    • 6, smpte170m
    • 7, smpte240m
    • 8, bt2020
  • space[int]
    出力時のカラースペースcolor_spaceの変換
    • 0, gbr
    • 1, 709, bt709
    • 4, fcc
    • 5, 470bg:BT.470BG、またはBT.601-6 625
    • 6, smpte170m:SMPTE-170M、またはBT.601-6 525
    • 7, smpte240m
    • 8, ycgco
    • 9, 2020_ncl, bt2020nc
  • range[int]
    出力時のカラーレンジcolor_rangeの変換
    • 1, tv, mpeg:リミテッドレンジ
    • 2, pc, jpg:フルレンジ
  • primaries[int]
    出力時のカラープライマリー(別の言い方ではカラースペース、ホワイトポイント)color_primariesの変換
    • 1, bt709
    • 4, bt470m
    • 5, bt470bg
    • 6, smpte170m
    • 7, smpte240m
    • 8, film
    • 9, bt2020
    • 10, smpte428
    • 11, smpte431
    • 12, smpte432
    • 22, jedec-p22, ebu3213
  • trc[int]
    出力時のトランスファーcolor_trcの変換
    • 1, bt709
    • 4, bt470m, gamma22
    • 5, bt470bg, gamma28
    • 6, smpte170m
    • 7, smpte240m
    • 11, xvycc, iec61966-2-4
    • 13, srgb, iec61966-2-1
    • 14, 2020_10, bt2020-10:BT.2020 10ビット深度
    • 15, 2020_12, bt2020-12:BT.2020 12ビット深度
  • format[int]
    出力時のピクセルフォーマットとビット深度の指定
    • 0, yuv420p
    • 64, yuv420p10
    • 125, yuv420p12
    • 4, yuv422p
    • 66, yuv422p10
    • 129, yuv422p12
    • 5, yuv444p
    • 70, yuv444p10
    • 133, yuv444p12
  • fast[boolean]
    色度とガンマ補正を考慮しない
    既定値:0(考慮する)
    範囲:0と1
  • dither[int]
    ディザーモードの指定
    • 0, none:既定値
    • 1, fsb:Floyd-Steinberg dithering
  • wpadapt[int]
    ホワイトポイント適応法の指定
    • 0, bradford:Bradford whitepoint adaptation。既定値
    • 1, vonkries:von Kries whitepoint adaptation
    • 2, identity:identity whitepoint adaptation (i.e. no whitepoint adaptation)
  • iall[int]
    入力時のcolor_space、color_primaries、color_trcを同時に指定する。allと指定できる値は同じ
  • ispace[int]
    入力時のカラースペースの指定。spaceと指定できる値は同じ
  • irange[int]
    入力時のカラーレンジの指定。rangeと指定できる値は同じ
  • iprimaries[int]
    入力時のカラープライマリーの指定。primariesと指定できる値は同じ
  • itrc[int]
    入力時のトランスファーの指定。trcと指定できる値は同じ

2 thoughts on “色空間変換するcolorspace

  • 匿名

    FFmpegを使い慣れてない身としては公式ドキュメントの情報が少なく、解説がなければとても使えませんでした。ありがとうございました。

匿名 へ返信する コメントをキャンセル

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

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