

Oh, turns out it really is YCbCr, I should have done the conversion the other way around! The gamuts of both spaces are different so doing the raw matrix multiplication on YCbCr(0, 0, 0) results in RGB(-179.2, 134.9, -225.9). This is obviously outside valid subpixel values in RGB24 (integers 0-255) so the values get set to RGB(0, 135, 0). There will be gamma correction applied, for example the ITU-R BT.601’s gamma correction will change it to RGB(0, 74, 0) - not quite OP’s measured value but very close, and we don’t know the video’s color profile or hardware gamma settings (yes, GPUs can apply various corrections to HW-decoded video before sending it to the screenbuffer that OP saved by screenshotting) so there is some margin of error.







My calculations say that
YCbCr(0, 0, 0), which is presumably the default state of the video framebuffer, will becomeRGB(0, 73, 0)after ITU-R BT.609 colorspace conversion and gamma correction. Not exact but very close, the video might just be using a slightly different color profile from the standard. Or maybe I made a miscalculation.