ffmpeg 4.1から使えるフィルタ。フィルタ内のフィールドタイプや色域などの色情報を記述するsetparams
フィルタの使い方。 入力映像は変更しないがフィルタやエンコーダの処理方法に影響を与える。
まとめ:色関係の設定のまとめ
基本コマンド
SD解像度の設定で明示する。
ffmpeg -i input -vf setparams=field_mode=prog:range=tv:color_primaries=smpte170m:color_trc=smpte170m:colorspace=smpte170m output
HD解像度の設定で明示する。
ffmpeg -i input -vf setparams=field_mode=prog:range=tv:color_primaries=bt709:color_trc=bt709:colorspace=bt709 output
ちなみにshowinfo
フィルタで色域などの色情報を調べることができる。
ffplay -i input -vf showinfo
ffplay -f lavfi -i color -vf setparams=field_mode=prog:range=tv:color_primaries=smpte170m:color_trc=smpte170m:colorspace=smpte170m,showinfo
1フレーム毎に以下のように表示される。以下は抜粋したもの。
n: 0 pts: 0 pts_time:0 pos: 615334 fmt:yuv420p sar:1/1 s:640x360 i:P iskey:1 type:I checksum:34D2040D plane_checksum:[4CFF3752 C34B881E EC87448E] mean:[126 117 133] stdev:[52.7 7.8 6.1] color_range:tv color_space:smpte170m color_primaries:smpte170m color_trc:smpte170m
しかし、setparams
フィルタで書き換えてもidet
フィルタで調べたフィールドタイプは変えられない。
公式ドキュメント:FFmpeg Filters Documentation : setparams
オプション
オプションの既定値はすべてauto(入力値と同じ)になっている。[int]型指定だが対応する数字とオプション数が一致していない場合があるので文字指定する。
- field_mode[int]
- -1, auto:既定値
- 0, bff
- 1, tff
- 2, prog
- range[int]
- -1, auto:既定値
- 0, unspecified, unknown
- 1, limited, tv, mpeg
- 2, full, pc, jpeg
- color_primaries[int]
- -1, auto:既定値
- 1, bt709
- 2, unknown
- 4, bt470m
- 5, bt470bg
- 6, smpte170m
- 7, smpte240m
- 8, film
- 9, bt2020
- 10, smpte428
- 11, smpte431
- 12, smpte432
- 22, jedec-p22, ebu3213
- color_trc[int]
- -1, auto:既定値
- 1, bt709
- 2, unknown
- 4, bt470m
- 5, bt470bg
- 6, smpte170m
- 7, smpte240m
- 8, linear
- 9, log100
- 10, log316
- 11, iec61966-2-4
- 12, bt1361e
- 13, iec61966-2-1
- 14, bt2020_10
- 15, bt2020_12
- 16, smpte2084:PQ (Perceptual Quantization)
- 17, smpte428
- 18, arib-std-b67:HLG (Hybrid Log-Gamma)
- colorspace[int]
- -1, auto:既定値
- 0, gbr
- 1, bt709
- 2, unknown
- 4, fcc
- 5, bt470bg
- 6, smpte170m
- 7, smpte240m
- 8, ycgco
- 9, bt2020nc
- 10, bt2020c
- 11, smpte2085
- 12, chroma-derived-nc
- 13, chroma-derived-c
- 14, ictcp