Extreme Bitrate Fluctuations | CBR Enabled

JasonPlays

New Member
I have been digging around and I know that there should be some fluctuations with streaming in CBR. But mine is just crazy. I have switched my bitrate from 6k to 4k and even 7k on Twitch and all bitrates see the same massive jump and fall. I know that when action on screen has high movement then bitrate will go over the selected number and then immediately decrease under the selected number to "balance out" according to your selected bitrate.

In my mind that would mean that would mean that if your bitrate was CBR 7k then 7k is the "target" but OBS will vary that depending on what is happening on screen. It can move up and down SLIGHTLY.

In the documents attached I have mine set to 7k CBR using the NVIDIA NVENC H.264 encoder. I am streaming a game ( No Man's Sky ) and with high movement I can basically "force" OBS to send over 11k bitrate. And this isn't for a split second or two, it is for as long as I am in high movement. Then once I slow down in the game, the bitrate will fall to nearly 500 bitrate for an extended amount of time.


The question I have: Is there anyway to prevent OBS / encoder from hitting these extreme bitrates? ( other than the obligatory "stop doing that in game" ) I feel like the rubber band of 11k bitrate and then drop-off to nearly 500 is not supposed to happen. If the encoder / OBS just prevented itself from sending over the limit then it wouldn't have to rubber band down to extreme lows to compensate.

I have seen multiple other streams on Twitch that have nearly a rock solid bitrate ( even with high movement games ) when I use the 1080p60 SOURCE option on Twitch, which leads me to believe it is possible to prevent OBS from going above a bitrate. At least not going above by this insane amount. I could be wrong, maybe everyone has this issue, but I feel like this is not intended from the encoder.

OBS Log File and Twitch Inspector Screenshot attached
 

Attachments

  • 2022-10-24 14-08-19.txt
    17.7 KB · Views: 25
  • 7k CBR Twitch.PNG
    7k CBR Twitch.PNG
    21.2 KB · Views: 90

JasonPlays

New Member
To clarify speed test ( don't know who needs to know )

I have done multiple tests over multiple days. I get reliably 800mbs download and 38mbs upload. I may have the wrong indicator ( bytes vs bits ) but essentially nearly 4 times the bandwidth upload compared to what I am attempting to use through OBS.

I am not worried about using more than I have, I am more worried about stream stability since a jump from 7k to 12k and then down to under 1k has to be insanely terrible for viewing a stream.
 

JasonPlays

New Member
Ok, have been doing my own testing to maybe find a solution. No idea if this will work for anyone else, or if this is a permanent fix.


I use the Quality preset under the NVIDIA NVENC H.264 encoder. This setting seems to basically ignore CBR if there is fast movement being captured. Using the Performance preset works better ( not totally fixed ) at keeping the same bitrate.

The only fix I can find is using the x264 encoder. This uses your CPU instead of Graphics Card, so not really beneficial for single PC streamers. Something has changed with the NVENC encoder on my PC recently. No idea if this is OBS specific ( updating to 28 in October ) or if it was a driver update for my Graphics card. Either way, the NVENC encoder is not behaving the same way it was 2 months ago.


My plan is to use the x264 encoder for the time being, limiting my resolution and frame rate so that my PC can handle playing a game and streaming at the same time. Will be reverting my Graphics Card drivers first to see if anything changes, then if that doesn't work I will be reverting back to previous version of OBS.

If anyone has a preferred version of OBS ( best stability for Nvidia GPUs ) please let me know.
 

JasonPlays

New Member
Adding more to this, hopefully someone smarter can figure this out......


After testing different versions of OBS ( 28, 27, and 26 ) this issue still persists.

After rolling back drivers for my GPU ( RTX 3080 ) to different drivers from the previous year, this issue still persists.

I have even done a clean reinstall of Windows thinking maybe it was something on my machine ( registry file issue, file corruption ) and the issue still persists.

The only progress I have made is that I have noticed it is connected to resolution.


With the same settings in OBS encoder, only changes are the output resolution, the bitrate fluctuations change. So, streaming at 720p with a 6k bitrate will have little to no fluctuations. When streaming at 1080p the bitrate can jump up to 12k ( double ) for extended period of time. When streaming at 1440p the bitrate will jump even higher, to 19k ( over triple )


I am using a 1440p monitor and playing at 1440p in game. I have no idea if lowering resolution in game / using a 1080p monitor will change this. But streaming at higher resolutions seems to make the maximum "allowed" bitrate to go up.


This feels like my RTX 3080 has some baseline for what bitrate should be used on specific resolutions and it will over ride any setting in OBS. So if I try to stream 1440p resolution at 6k bitrate it will keep fighting OBS limits and try to use the 19k bitrate.
 

Attachments

  • FgsXQQvVUAIEZC6.png
    FgsXQQvVUAIEZC6.png
    27.9 KB · Views: 55
  • 1440p.png
    1440p.png
    28.8 KB · Views: 55

JasonPlays

New Member
Thank you so much, all the questions I had are totally answered! Why didn't I think of that?

Seriously though, this was a test to verify if bitrate was set based on resolution, not if I could stream 1440p with a 6k bitrate. It does seem to be linked to resolution, so anyone trying to stream at a high resolution "needs" to be using a higher bitrate because the NVENC encoder will not care what you set it at. No matter the CBR used, if you stream at 1440p then the NVENC encoder will force the use of 20k ( or limits of your bandwidth )
 

JasonPlays

New Member
After testing even more I have found something else.

After trying to clean install multiple versions of OBS, Nvidia Drivers and even a clean install of Windows with no effect on the issue, I tried a total Winsock reset and a TCP reset.

This seems to have "helped" but not totally fix the issue. Still testing, but TCP settings within windows may have some bearing on what NVENC encoders use. No idea, grasping at straws basically. At this point I want to just go AMD and just call it a day.
 
Top