いわゆるcolor primaries、color transfer characteristics、color spaceの扱いについて。解像度とフレームレートに関わるPAL、NTSC。解像度に関わるSD、HD、UHD。輝度のダイナミックレンジに関わるSDR、HDRなどの組み合わせで最適なオプションを指定する。これらのオプションはYUVの映像をRGBのモニターに正しく、指定した設定で表示するものである。それぞれの設定の効果については正確なことが言えないのでここでは触れない。

それぞれのわかりやすい説明。
よくわかる、HDR徹底解説! HDRとは | EIZO株式会社

ffmpeg Documentation : Codec Optionsの下の方にある。それぞれ入力、出力オプションになるので入力ファイルの前、入力ファイルの後ろ(出力ファイルの前)に指定する。

基本コマンド

これらの情報はshowinfoフィルタで表示される。
ffplay -i input -vf showinfo

フレーム、サンプル単位で情報を得るshowinfo、ashowinfo

1フレーム毎に以下のようにコンソールに表示される。以下は抜粋したもの。

color_range:tv color_space:bt709 color_primaries:bt709 color_trc:bt709

ffprobeで調べるなら以下のようになる。
ffprobe -v error -f lavfi -i movie=input.mp4,showinfo -select_streams v:0 -show_frames -show_entries frame=color_range,color_space,color_primaries,color_transfer -read_intervals %+#1

ffprobe の使い方

ウェブカメラやテストソース、画像などを読み込んだときや未設定の動画を未設定でエンコードすると色の情報はunknownで不明になる。入力時点で未設定のときには入力オプションで指定し、エンコードして最終的にデータを書き込むなら出力オプションで指定する。

一般的なHD動画に入力オプションと出力オプションをすべて指定した例。
ffmpeg -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -i input -pix_fmt yuv420p -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -c:a copy output

出力オプションの代わりにH.264、HEVC、VP9、AV1、Proresはビットストリームフィルタで書き込むこともできる。
ビットストリームフィルタのまとめ

オプション

  • -color_primaries
    • bt709
    • bt470m
    • bt470bg
    • smpte170m
    • smpte240m
    • film
    • bt2020
    • smpte428, smpte428_1
    • smpte431
    • smpte432
    • jedec-p22
  • -color_trc
    • bt709
    • gamma22
    • gamma28
    • smpte170m
    • smpte240m
    • linear
    • log, log100
    • log_sqrt, log316
    • iec61966_2_4, iec61966-2-4
    • bt1361, bt1361e
    • iec61966_2_1, iec61966-2-1
    • bt2020_10, bt2020_10bit
    • bt2020_12, bt2020_12bit
    • smpte2084:HDR
    • smpte428, smpte428_1
    • arib-std-b67:signal HLG
  • -colorspace
    • rgb
    • bt709
    • fcc
    • bt470bg
    • smpte170m
    • smpte240m
    • ycocg
    • bt2020nc, bt2020_ncl
    • bt2020c, bt2020_cl
    • smpte2085
  • -color_range
    • tv, mpeg:リミテッドレンジ
    • pc, jpeg:フルレンジ

オプション設定の目安

解像度とフレームレート、ダイナミックレンジの目安。解像度は縦のピクセル数。

  • SD:720未満
    PAL:bt470bg、bt601
    NTSC:bt470m、fcc、smpte170m、bt601
  • HD:720以上2160未満
    PAL:smpte240m、bt709
    NTSC:smpte240m、bt709
  • UHD:2160以上
    PAL:bt709、bt2020
    NTSC:bt709、bt2020
  • ダイナミックレンジ
    SDR:bt601、bt709、bt2020
    HDR:bt2020、bt2100、smpte2084

リンクのまとめ

コメントを残す

メールアドレスが公開されることはありません。

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