HDR to SDR doesn't work (washed out), and what I already tried

Pidowap

New Member
English is not my first language, but I will write the best I can.

Hello everyone and thank you for stopping by.

My situation
I have an HDR monitor and play games in HDR. I stream on Twitch (I know Twitch doesn't support HDR).
When I play a HDR game, the game looks washed out (example), but when I play a SDR game, the game looks normal (example).
The thing is, in the source properties window, the game looks normal, but not on the OBS preview, and not on my stream.
I always enable HDR in windows before launching OBS and the game

What I already tried
I awlays launch OBS as administrator.

I changed the color format to "P010" and the color space to "Rec. 2100 (PQ)" in the "advanced" settings, but I can't stream with these settings because the encoder (NVIDIA NVENC H.264) doesn't support 10 bit encoding.

I changed the color format to "NV12" and the color space to "Rec. 709" in the "advanced" settings.
I changed the color format to "NV12" and the color space to "sRGB" in the "advanced" settings.
I tried the two above with "YUV" to "full" and "limited".

In the properties of the source, I changed the color space to "Rec. 2100 (PQ)".
I added a HDR tone mapping filter to the source.

Despite all this and numerous research on the internet I still have this problem

I attached my most recent log file.

Thank you for reading
 

Attachments

  • 2024-02-22 10-46-54.txt
    15.7 KB · Views: 111

PaiSand

Active Member
Not an issue on OBS side.
As long as you stream to Twitch and they don't support HDR you shouln't use HDR. If you still want to use HDR, stream to Youtube selecting Youtbe - HLS as service. Of course, all the other settings needed for it too.

 

Pidowap

New Member
Not an issue on OBS side.
As long as you stream to Twitch and they don't support HDR you shouln't use HDR. If you still want to use HDR, stream to Youtube selecting Youtbe - HLS as service. Of course, all the other settings needed for it too.

Thank you for your quick reply.

I don't understand why I shouldn't use HDR. OBS does the tone mapping from HDR to SDR automatically. The problem is that it is washed out.
Are there really no solution to make it good looking while still playing in HDR ?
 

scotchbean

New Member
Same issue here - OBS's tone mapping just looks like crap and I can't find a way to make it look any better. The override filter doesn't make much of a difference unless there's some magic combination of settings I haven't found. I'm not expecting perfection or anything as I don't doubt that tone mapping is a complicated task, but whenever I record an HDR game it looks completely washed out and lifeless even compared to the same game running in SDR.
 
I will not mention the pointing finger game that is happening over HDR, but once it's tuned on, it uses SDR and HDR with10 bits, not 8 bits. But it should still look the same...when you use the Rec.2100 gamuts. Then when it goes to the remote end or someone's phone, HDR is not active. What we need to do is stay on the SDR10 side and tell the OBS application that "I have a BT.2020 color profile for you." Now we have NV12 and P010 formats; I choose P010, which is for 10 and 16 bit gamuts and Youtube refuses to connect with this. So I tried to use HLS and it shows HDR live, but it looks like porkchops...not good. OK, so I go back to NV12 and it connects. NV12 is a YUV 8 bit gamut which uses interleaving by CEA. Here comes VESA saying, "we use RGB 10 bit here. If you turn on Windows 11 HDR, you will have washed colors because VESA HDR is not interleaved. The manufacturers need to certify their monitors" Now here comes the manufacturers saying, "we put a HDR sticker on it, but it's missing some data, but it's ok." Now AMD and NVIDIA says, "none of those monitors passed HDR certification."

I lied and had to mention the finger pointing. I'm in the same boat. It's not OBS devs fault. I am not giving up hope. HDR looks incredible when I played Horizon Zero Dawn, but we need to figure out how to tell OBS, "here is my BT2020 color profile...please use it."
 
I used a program called ColorControl.

With this program, I was able to create a duplicate of my monitor profile within the app, give it a name called Gaming, include only the Other and HDMI settings, and attach this profile to the OBS executable in the Game Launcher tab. There is a Settings button on the Game Launcher tab that allows you to run the programs externally. When it runs, OBS can use my BT2020 color profile now and when I selected Force SDR in the Display Capture, the colors, gamma, and contrast were very bright over the SDR side. Windows has a feature in the Color section that is supposed to automatically make the apps use the color profiles, but I'm not sure if it really works.

In the Advanced tab of OBS, instead of using NV12 or P010, I used BGRA 8-bit when going live even if it's HDR. Usually, BGRA is raw and optimal for mobile devices, but GPU's actually read this data in this order, Blue, Green, Red, and Alpha. There is no need to convert anything so colors don't look washed.
 
Last edited:
Top