18/11/13 17:19:12.58 acX9+3/p0.net
>>830-832
カラーフォーマット/YUV色空間/YUV色範囲は、作ったRGB映像をYUVに変換する場合のフォーマットと係数の指定。
これに従って変換したYUVデータをエンコーダに渡すことになる。(RGB渡しもできるが)
エンコーダはYUVデータを、指定したエンコーダと設定に従ってエンコードする。
この際に、(可能なら)YUV色空間/YUV色範囲の設定をエンコードデータに付与する。
x264だと--colormatrix/--rangeが使われる。
※ただし、22.0.2でエンコーダがx264だと、601指定の場合は--colormatrixを指定しないようなので
自分でx264オプションにcolormatrix=smpte170mを指定する必要がある。
でも今はHD配信が多いだろうし、709指定にしておいたほうがよい。
※エンコーダがQSVの場合は付与できない。NVEncやAMFは知らん。
※出力ファイルをMediaInfoにかけてcolour_range、matrix_coefficientsを見れば付与が確認できる。
再生時には、デコードされたYUVデータをRGBに変換する処理が行われる。
このYUV→RGB変換で、YUV色空間/YUV色範囲が元の設定と一致しないと、色がおかしくなってしまう。
エンコードデータに付与されていれば、それを読み取って反映すればよいのだが、
上記のように付与されていないこともあるし、デコーダ/レンダラ/ブラウザ/環境によっては付与されていても反映されないことがある。
特にYUV色範囲(一部/全部)は無視されやすい。
GPUからモニタへの出力がフルレンジなのかリミテッドレンジなのかは、
「"デコーダとレンダラによってRGBに戻した映像"をどういうレンジでモニタに出すか」ということなので、
OBSのYUV色範囲の設定は全くの無関係で影響もゼロ。
通常の動画のYUV色範囲は「一部(Limited Range)」。
「全部(Full Range)」の動画を間違ってLimitedとして再生してしまうと、「白飛び黒潰れしコントラストが上がった映像」になる。
色が濃く見えているというのは、上に挙げたいずれかの原因でそうなってしまっているってことだろう。
とりあえず、「全部」にするのはトラブルの元になるだけなので、「一部」で使えってこと。
「全部の方が階調的に有利」とか言い出す奴がいるかもしれんが無視しとけ。実質的なメリットなんて無いから。