What Settings to Tone-Map HDR to SDR for Livestreaming?

ThirtyIR

New Member
I want to play games in HDR but stream in SDR so that my viewers (YouTube) can see the proper colors etc. and the game is not over-exposed (viewing HDR through SDR).

What settings do I need to use to do this properly?

Under the "Advanced" tab in Settings, do I still use the P010 Color Format or just NV12? For Color Space, do I use Rec. 709 or Rec. 2100 (PQ)?

Please let me know.
 

strickforce

New Member
Following because I for the life of me can’t figure this out and it’s driving me nuts. I tried the settings that Epox(YouTuber) said to use, but it definitely doesn’t work, at least for me.
 

ThirtyIR

New Member
@strickforce I used the settings that EposVox also recommended - it seems to work for me.

Set the Game Capture window to Rec. 2100 (PQ) but in the Advanced tab, use Rec. 709 for Color Space and NV12 for Color Format.

here is a stream I did while playing in HDR but streaming in SDR at 4K 60fps:

 

Lycanthrope -R-

New Member
I gotta revive this because I'm getting something really weird. I'm also trying to play in HDR while streaming in SDR.

I set the capture card (Avermedia GC553) to P010 and Rec.2100 and it looks fine in the properties or filter windows. But in the actual scene it's super dark. I don't have any filters applied.
Screenshot (23).png

Full and limited both look the same, so that's not it. The canvas is set to Rec.709. (Like Epox said to do).

Now, if I also change the canvas to Rec.2100, then it looks like it's supposed to. But I can't stream using that color space. I don't know what to do from here. I can try to add filters/LUTs to fix it, but it doesn't seem like I should have to given the 28 update. And I don't know why it would look different in the properties/filter window compared to the actual scene.
 

Lycanthrope -R-

New Member
Well, I figured it out my problem, at least.

It turns out that I did have a "filter" on the video. I'm pretty sure it's not supposed to be this way, but as of version 28.0.3, video format P010 is not compatible with any scale filtering. Bicubic, lanczos, none of them. Unless the canvas is set to HDR, you just have to leave it on disabled, or else it darkens the video.

Why? I dunno. But if the HDR tone mapping is acting funny for you, try checking to see if you have a downscale filter set on the capture.
 

EveryGameGuru

New Member
How would I go about streaming to YouTube in HDR (Canvas is p010, rec2100 as well as the window capture) but recording in SDR?

To break it down a bit further, basically, I need to "record to URL" using ffmpeg but in h.264 format. I can do this VERY easily without HDR using HEVC_NVENC for my YouTube stream and H.264_NVENC for my ffmpeg "Record to URL". Are there any muxer\encoder settings I could use to enable the HEVC to YouTube in HDR, then transcode to SDR for my "Record to URL"?

Also,
RAW HDR INPUT => HEVC_NVENC => YOUTUBE works

as does:

RAW SDR INPUT => {
STREAM 1 = HEVC_NVENC (SDR) => YOUTUBE
STREAM 2 = H.264_NVENC (SDR) => CASTR.IO
}
but I would like:

RAW HDR INPUT => {
STREAM 1 = HEVC_NVENC (HDR) => YouTube
STREAM 2 = H.264_NVENC (SDR) => Castr.io
}

Both streams accept AAC audio, so that can (and currently is) copied over and works.
CASTR.IO does NOT accept HEVC encoding
Thanks in advance to anyone for even taking the time to read this.
 

sandrix

Member
Please, don't. Your "help" includes ditching FFMPEG for an obsolete "multi-rtmp" add-on and to stream in 2K instead of 4K because "nobody owns a 4K TV"
*eye roll*
Looks like you didn't pay attention to another post that I later deleted. In it, I sent you the necessary variables for ffmpeg and suggested what else can be done and where to find information. Obviously, you chose not to notice this, and now you are duplicating your questions in another topic.

Again, I still think the Multiple rtmp plugin is simple and great, and you can keep messing around with ffmpeg. Yes, streaming in 4K is a bad idea. Anyway, this is my opinion.
 
Last edited:

EveryGameGuru

New Member
Looks like you didn't pay attention to another post that I later deleted. In it, I sent you the necessary variables for ffmpeg and suggested what else can be done and where to find information. Obviously, you chose not to notice this, and now you are duplicating your questions in another topic.

Again, I still think the Multiple rtmp plugin is simple and great, and you can keep messing around with ffmpeg. Yes, streaming in 4K is a bad idea. Anyway, this is my opinion.
This isn't the same issue as before. I've already said that HLS and SRT are working, along with 4K and 1080p. Nothing I'm doing involves RTMP, so your advice is useless. For your setup and internet, maybe streaming in 4K is a bad idea, but I'm currently streaming in 4K AND 1080p, at the same time, so I don't see your logic.
 

Sir_Coleslaw

New Member
I would like to bring this topic up again because I have exactly this problem, and I am not quite sure how to set the settings.

I want to play in HDR but stream in SDR.

I use a dual PC setup, here are the specifications:

Gamer PC (HDR Capable):
7950X3D
4090
3440x1440@144Hz HDR
10GBit/s SFP+ direct connection to streamer PC.

Streamer PC (Only SDR):
9900K
2070S
SDR Monitor

I would like to use the OBS plug-in "Beam" for transmission from gamer to streamer. I have already been able to set this up so that my image signal is transmitted uncompressed in raw and without any problems from gamer to streamer. The plug-in is fully HDR-capable. But now I have the problem that I'm not sure which settings I need to set on the streamer and receiver.

I have currently set the following:

Gamer PC OBS:
Here I use gamecapture to capture the image of the game, Windows 11 is set to HDR mode. HDR is activated in the game and is also output cleanly on the OLED monitor in HDR. I have set P010 and 2100 (PQ) in the "Advanced" tab in OBS.

Streamer PC OBS:
Here, I have added the corresponding receiver source from the Beam plug-in. This also works, the image is transmitted from the gamer to the streamer, but arrives there washed out. So it looks to me as if the tonemapping from HDR to SDR is not working properly. I suspect that this is due to some kind of incorrect setting.

I have already asked this question in the plugin forum, but the developers there are not familiar with HDR-SDR tone mapping, so they referred me to the general OBS forums.
 
On the game PC, in OBS choose nv12 and 709 in the settings in the advanced section, capture the screen, window or game. You can capture in SDR in properties, but it is not necessary or OBS does the tone mapping automatically. Send by Beam in JPEG, QOY or DENSITY. With your network you will have no problems.

You can also use Teleport or NDI.

You can test which method goes better and smoother.
 
It is with two PCs, you can see the capture screen on the gaming PC captured from the other PC, sent with Teleport. The output is 2160p. I looked at FPS of the bench of Cyberpunk 2077and it loses 15/20% performance due to sending via Teleport.
 

Sir_Coleslaw

New Member
Thanks for the help, now the picture fits. I am currently sending RAW and end up with approx. 450 MB/s, but that works. With 10GBit/s I would have a theoretical maximum of 1200 MB/s. Thanks again for the tips!
 

KaWouter

New Member
@strickforce I used the settings that EposVox also recommended - it seems to work for me.

Set the Game Capture window to Rec. 2100 (PQ) but in the Advanced tab, use Rec. 709 for Color Space and NV12 for Color Format.

here is a stream I did while playing in HDR but streaming in SDR at 4K 60fps:

Hi, I found a EposVox video with different settings. Do you remember the video you got it from?

"Game Capture window to Rec. 2100 (PQ)" By this you meen the properties of the source (video capture device)
"but in the Advanced tab, use Rec. 709 for Color Space and NV12 for Color Format." Not sure what you mean with this. What advanced tab?
 
In settings/advanced if you select NV12 and Rec 709 (or Rec 601) you can transmit or capture a source captured in PO10 and REC 2100 (HDR)
 
Top