カラースペースの変換を行う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, bt2020nc:2020_ncl
- 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と指定できる値は同じ
FFmpegを使い慣れてない身としては公式ドキュメントの情報が少なく、解説がなければとても使えませんでした。ありがとうございました。
ありがとうございます。
ffmpegの本を販売してますのでご覧ください。
https://nico-lab.net/feedback_techbookfest7/
また今月9月12日から始まる技術書典9でオーディオフィルタの本を頒布するのでこちらもよろしくお願いいたします。