Question / Help Encodes were dimmer in Studio

relax

New Member
So I've recently tried out the studio version for local recording and it's got some interesting things going for it, mostly good, but in my encoder of choice [staxrips] I was getting darker renders compared to what is now called classic.

I looked at the logs provided by staxrips and here's...
the old
Color range : Limited
Color primaries : BT.709
Matrix coefficients : BT.709

vs the new
Color range : Full
Matrix coefficients : BT.709

I saw a thread suggesting to change it to BT.601 but I didn't see a change but decided to switch OBStudio to Color range: partial and staxrips reads..
Color range : Limited
Matrix coefficients : BT.709

Now the output is the same as classic sourced encodes and what's on the screen, so I'm scratching my head on what or why Full was default? Was staxrips doing it wrong? Is the game I'm window capturing weird? Did I change it to full and I'm an idiot?

OS : Windows 7 Ultimate
CPU : AMD FX(tm)-6300 Six-Core Processor
GPU : NVIDIA GeForce GTX 960

*thought I should report I usually use nvenc but also tried x264 with the same dim resulting encodes.
*mpc-hc and youtube were used for playback
 
Last edited:

Suslik V

Active Member
Studio output:

Color primaries BT.709
Transfer characteristics BT.709
Matrix coefficients BT.709

only if you setup Settings>Advanced>YUV Color Space: 709, otherwise encoder's output is BT.601 for all (primaries, transfer, matrix). To workaround this, in current build of the Studio, you need to specify:
  1. Settings>Advanced>YUV Color Space: 709
  2. Settings>Output>Output Mode: Advanced>x264 Options (separated by space)>colormatrix=bt470bg
This forces output to:

Color primaries BT.709
Transfer characteristics BT.709
Matrix coefficients BT.601

Available colormatrix is depend on build (you may try bt470bg - for PAL BT.601; smpte170m - for NTSC 601; or others - bt709 fcc bt470bg smpte170m smpte240m GBR YCgCo according to ffmpeg and x264 web info).

Color Range (PC/full vs TV/limited) doesn't need additional attention, because option available at Settings>Advanced>YUV Color Range UI and didn't require additional setup like matrix. I recommend to use Partial. It is output.

Custom matrix has its own benefits, especially when you working with sub-sampled chroma (NV12 and other). Right BT.709 implementation only possible if you can calibrate all you sources and destination devices. If you don't sure about standards of broadcasting, then choose 601 in OBS Studio even for HD content.

From example above: BT.709 + matrix BT.601 can produce better colors, then native BT.709 + matrix BT.709; and sometimes BT.601 + matrix BT.601 is the best choice.

If your destination device cannot handle BT.709 matrix, then you are wrong in setups.
If your destination device cannot handle Full color range video, then you are wrong in setups.

Always try to match your output to destination device (you cannot force web service or end-user software to make things they are not designed for).
Each time you are playback limited range video on PC monitor - it upscale image range to full. Each time you are running playback of the PC full range video on TV-set it downscale image to partial range and then display it. In both cases difference almost unnoticeable. Examples there: Quick Sync / NVENC YUV Full Range Color, and make sure that your software/hardware can handle range conversion right.

P.S. I had write all this info because chroma is not a color, and thus a lot of info about matrix.
P.S.S. If you have HD camera (canon, nikon etc.) try to record video and check with Media info application its output settings. For example, I have a camera where 709 709 601 is normal for 720 HD video 4:2:0 sub-sampled ^_^
 
Last edited:
Top