Question / Help Stream frametime seems jumpy, but game is smooth

samfisher

New Member
So I've always had this issue with streaming. Upgraded to a 3700x and decided to try streaming again just for fun with Warzone. 16GB 3600 CL16, GTX 1070, Win 10 Game Mode on, game bar off, running OBS as admin. Game capture mode. Preview off. 1440p 144hz monitor, running the game about 80-100fps, secondary 60Hz monitor with no GPU load playing on that monitor. No dropped frames, no encoder lag etc.

I've tried both streaming at 720p60fps and 1080p60fps and I can't get the stream to look smooth, both at 8000KBps.

Fast Preset with these settings :

rc-lookahead=60 vbv-buffsize=8M trellis=1 direct-pred=spatial

I saw a comment somewhere that in my sources I could try ticking "Limit capture framerate" but that didn't help. My original stream was 720p60fps with this unticked, and I tried again at 1080p60fps with it ticked. Both clips don't look smooth at all. Any help is much appreciated!

Original clip from stream, 720p60fps :

https://www.twitch.tv/samfishersam/clip/SecretiveGloriousIcecreamResidentSleeper

Second short stream with Limit Capture Framerate on, 1080p60fps :

https://www.twitch.tv/videos/586554864
 

Narcogen

Active Member
You will always have some judder because of 1) Windows issue running displays at different refresh rates; and 2) 144hz doesn't pull down to 60Hz cleanly, unlike 120hz.
 

samfisher

New Member
You will always have some judder because of 1) Windows issue running displays at different refresh rates; and 2) 144hz doesn't pull down to 60Hz cleanly, unlike 120hz.
Running the game fullscreen bypasses WDM so that's not the issue. After having a similar discussion on Discord, it could be that my GPU is maxed out, despite having Game Mode on and running OBS as admin to reserve GPU resources. I'm not sure this is the entire story tho.
 

FerretBomb

Active Member
Running the game fullscreen bypasses WDM so that's not the issue. After having a similar discussion on Discord, it could be that my GPU is maxed out, despite having Game Mode on and running OBS as admin to reserve GPU resources. I'm not sure this is the entire story tho.
No, it doesn't. The compositor is still operating in the background with the mismatched refresh bug in full effect, which can still take place even with the Preview in OBS disabled (it only fixes it for SOME setups). The full fix is coming in Win10 2004, later this year or possibly 2021 according to some sources.
You can check for GPU overload with GPU-Z, which on the Sensors tab has a Load bar-graph over time. If you are getting rendering delay from an over-loaded GPU, that will also show up in the logfiles. Why it asks for one when you create a new thread.
Also seconding Narcogen's comment about the 144-60 pulldown resulting in uneven frame pacing; with a 120hz refresh, every other frame is discarded. With 144, it's one-two-skip-a-few, which WILL incur judder.
 

samfisher

New Member
No, it doesn't. The compositor is still operating in the background with the mismatched refresh bug in full effect, which can still take place even with the Preview in OBS disabled (it only fixes it for SOME setups). The full fix is coming in Win10 2004, later this year or possibly 2021 according to some sources.
You can check for GPU overload with GPU-Z, which on the Sensors tab has a Load bar-graph over time. If you are getting rendering delay from an over-loaded GPU, that will also show up in the logfiles. Why it asks for one when you create a new thread.
Also seconding Narcogen's comment about the 144-60 pulldown resulting in uneven frame pacing; with a 120hz refresh, every other frame is discarded. With 144, it's one-two-skip-a-few, which WILL incur judder.
I don't have any render or encoding lag on my OBS stats, which is what made me write this thread in the first place :D Yes my GPU is getting maxed out, but I was hoping that Game Mode on and running as Admin would save enough resources for OBS to be able to have a smooth stream.

And pretty sure running fullscreen bypasses WDM. I have noticed this from the very first time I had mismatched refresh rate monitors. If nothing is using hardware acceleration on the 60hz screen, the 144hz monitor doesn't stutter. My issue now is purely stream stutter, not game stutter.
 

FerretBomb

Active Member
If you are not getting render delay in the log, then your GPU loading is irrelevant.
Set both your monitors to 60hz, at least temporarily, and test again. It is almost definitely what is causing the problem; the desktop compositor doesn't "ignore" the 144hz screen just because something else is using it. Again, the bug is in full effect, even with fullscreen games.
 

samfisher

New Member
If you are not getting render delay in the log, then your GPU loading is irrelevant.
Set both your monitors to 60hz, at least temporarily, and test again. It is almost definitely what is causing the problem; the desktop compositor doesn't "ignore" the 144hz screen just because something else is using it. Again, the bug is in full effect, even with fullscreen games.
How would this affect stream quality anyway? My experience in-game and what the stream sees are vastly different.
 

koala

Active Member
To get a smooth stream, the time distance between 2 frames must be equal (for constant frame rate videos) or must correspond to the original time distance the frames were generated (for variable frame rate videos). For streaming, we discuss constant frame rate videos.

If you generate frames at 120 fps with your game, but stream with 60 fps, OBS just needs to drop every other frame and will get a smooth video, because the time distance between 2 frames is still constant after dropping half of the frames. It just doubled, but that's fine, because it is constant.

But if you generate frames at 144 fps with your game, OBS has to drop ab bit more than half of the frames. Sometimes it drops every other frames, but the 24 more frames in comparison to 120 fps have to be dropped as well, so sometimes 1 frames are dropped, and sometimes 2 consecutive frames are dropped to get down to 60 fps. For some frames, the display time doubled, but for a few other frames it tripled.
This unsteady dropping causes a slight judder or jumpy appearance of the video.

So try to set your game fps to 120 and verify the appearance of the video.
 

samfisher

New Member
To get a smooth stream, the time distance between 2 frames must be equal (for constant frame rate videos) or must correspond to the original time distance the frames were generated (for variable frame rate videos). For streaming, we discuss constant frame rate videos.

If you generate frames at 120 fps with your game, but stream with 60 fps, OBS just needs to drop every other frame and will get a smooth video, because the time distance between 2 frames is still constant after dropping half of the frames. It just doubled, but that's fine, because it is constant.

But if you generate frames at 144 fps with your game, OBS has to drop ab bit more than half of the frames. Sometimes it drops every other frames, but the 24 more frames in comparison to 120 fps have to be dropped as well, so sometimes 1 frames are dropped, and sometimes 2 consecutive frames are dropped to get down to 60 fps. For some frames, the display time doubled, but for a few other frames it tripled.
This unsteady dropping causes a slight judder or jumpy appearance of the video.

So try to set your game fps to 120 and verify the appearance of the video.
How do people stream CSGO at hundreds of FPS smoothly then? They all play with unlocked FPS and they're still smooth. I understand 120 dropping to 60 is an easy division and can help with this issue but how are people with uncapped FPS streams still stream so smoothly?
 

Narcogen

Active Member
How do people stream CSGO at hundreds of FPS smoothly then? They all play with unlocked FPS and they're still smooth. I understand 120 dropping to 60 is an easy division and can help with this issue but how are people with uncapped FPS streams still stream so smoothly?

You are conflating game FPS with display refresh rate. The issue here is not the game's framerate, it is your display's refresh rate.
 

Daryll

New Member
man you are lucky to have that kind of stream as smooth like in game. just be contented on that. compare to us and other people having more powerful cpu ryzen 9 3900x and gpu rtx2070 super we cant even have that kind of smoothness in streaming no matter how we lower down our in game settings and obs settings.
 

d0wsha

New Member
I don't know will this help out someone, but i had the same exact problem with 2 monitors. I just turned on my game capture -> properties -> check the little box "Limit capture framerate". Now my obs is open, the preview is open too and i have no lags, stream is smooth and the game is not choppy cuz downgrading it to 60hz from 144hz. Hopefully Microsoft takes the proper move to fix DWM.
 

jen97jen

New Member
I don't know will this help out someone, but i had the same exact problem with 2 monitors. I just turned on my game capture -> properties -> check the little box "Limit capture framerate". Now my obs is open, the preview is open too and i have no lags, stream is smooth and the game is not choppy cuz downgrading it to 60hz from 144hz. Hopefully Microsoft takes the proper move to fix DWM.
ok. I bought a PC 12 months ago, and Had no clue what SLOBS was or OBS for that matter. Total noob.

I have struggled for 12 months experimenting with NVENC NEW encoder. I learned very quickly that streaming fortnite as a somewhat competitive player on a single PC setup would be difficult, thus, disregarding the software encoder in my first 2 months of experimentation.

The solution for a buttery 60FPS stream, was no, not buying a stream PC. No, not upgrading my internet. No No No.

“Limit Capture Framerate”

this. this option. the option that, when googled, the top result is a forum post spewing BS about how enabling capture frame rate in your game capture properties “hurts” your FPS. HA.

I’ll tell ya, as soon as I enabled that, The streams looked lubed. yes. Lubed. so buttery, you could see the grease.

0 B-frames

Psycho Tuning Enabled
Lookahead Disabled

Low-latency quality is fine, as well as high profile.

I am aware that my Quality preset probably doesnt matter because i have 0 b frames.

Any ways, if you have wondered if there is any secret sauce to a buttery SILKY smooth stream, Limit Capture framerate if you happen to be a high FPS player. Noticed that my input lag was no longer increasing when i enabled that.

Pascal architecture GPU btw (1060 3GB)
For some reason, there's just not much info about 'Limit Capture Framerate' on the internet but both of you suggest that it actually helps with performance in general, will try it out as well.
 

LastofAvari

New Member
When I was streaming Cyberpunk 2077, I'd found out that it doesn't like being captured with Game Capture source, stuttering all over the place. Capturing the entire display solved this problem for me.
 
Top