Question / Help OBS preview stutters while not recording

Ken Ishizu

New Member
Ah, so you haven't actually tested on 2 completely different monitors?
I did. The monitor which gave me the best results is a native 1080p 60 Hz. The other one is a 1440p 144 Hz with G-Sync.

I assume this microstutter is completely unrelated to the problem in this thread?
Yes, I think it's unrelated. But this microstutter happened every 30 to 60 seconds in my 1440p monitor operating at "60" Hz because it was actually updating the screen at 59.95 Hz instead of true 60 Hz like the 1080p monitor.
 

darthclide

Member
I did. The monitor which gave me the best results is a native 1080p 60 Hz. The other one is a 1440p 144 Hz with G-Sync.
May I ask how many monitors in total you tested with? I am guessing not too many, but the more you tested with, the more "ammo" it gives us.

I hope you read my edited last paragraph in the other post. It is a curious thing.
 

Ken Ishizu

New Member
May I ask how many monitors in total you tested with? I am guessing not too many, but the more you tested with, the more "ammo" it gives us.

I hope you read my edited last paragraph in the other post. It is a curious thing.
I only own those two monitors. Using CRU to fix the refresh rate to 60 Hz did help me eliminate the microstuttering I had every 30 to 60 seconds.

But the major stuttering every 10 to 15 minutes was only solved after I started using the capture card.

I read the last paragraph. That's some interesting info about this problem. It's weird that messing with the configurations is "resetting" something associated with the frame updates.
 

darthclide

Member
I only own those two monitors. Using CRU to fix the refresh rate to 60 Hz did help me eliminate the microstuttering I had every 30 to 60 seconds.

But the major stuttering every 10 to 15 minutes was only solved after I started using the capture card.

I read the last paragraph. That's some interesting info about this problem. It's weird that messing with the configurations is "resetting" something associated with the frame updates.
Ah well then somebody needs to grab 2 other monitors to test with. There is a remote chance that our monitors are sometimes not reporting the correct refresh rate to Windows which in turn messes up OBS. Yes, I know the odds are astronomically low, but that is why this thread will be staying up for a long time. We are trying to find crazy obscure solutions at this point.
 

darthclide

Member
Because I am trying to get someone higher up involved, I tried getting EVGA to help with this problem. (Since I use their RTX 2070) I got transferred to a guy who used OBS quite often, and he mostly suggested all the things I have tried before. And unfortunately I don't think he understood that the preview is the problem. Changing the bitrate, encoder, or priority will have 0 impact on the preview just sitting there not recording. But what's interesting is that he is on the latest chipset. Here is a snippet from his email:

MSI X299 Gaming M7 ACK | i7-7820X @4.78 GHz - 1.245v | 2x EVGA GTX 1080Ti FTW3 | G.Skill TridentZ RGB 32GB (4x8GB) @3866 MHz | Corsair AX1200i

I use CPU for encoding.

I have games running at >150 FPS constantly, and I have never had issues outputting at 1080p60. The software would automatically choose which frames it is going ot capture and output. I always run the most up to date version of Windows.


We can ignore the part about him using CPU to encode since that doesn't affect the preview while not recording. However, the last paragraph says something very important in my case. When I tried disabling vsync in my game and the fps floated around 80-90, my OBS preview was very jumpy and had stutters everywhere. So how is he able to run at over 150 fps but OBS runs just fine?

My conclusion might be simple, but I wonder if Intel/Microsoft has purposefully broken things to get people to buy the latest computer? This preview problem occurs on the LGA2011 socket (3930k cpu) and my LGA1151 socket (8700k cpu).

It would put a halt to my idea if someone confirmed using a 1080TI + an LGA2066 board and this issue still occurs.
 
There is actually quite a few things going on....

VESA don't like the 60hz model for LED monitors and is supposed to provide new timings. Since they didn't, most are bound to use fake refresh rates in the mean time. They recommended using the LCD Reduced Blank 60hz over the previous one since 2013; it turns down the power on the Vertical timings while providing higher refresh rates. I used CRU to make a 59.94hz and 60hz reduced blank refresh rate on my G-Sync monitor and replaced the previous 60hz. I set OBS to capture at 59.94hz, then changed the monitor to 59.94hz refresh rate. The capture was smooth, however.

The preview and Display Capture are experiencing this stutter because of Windows 10's composite optimizations. It would go away if (not implying) OBS was running in a full screen borderless mode (implemented by Microsoft since Windows 8 because people wanted borderless gaming from Windows 7). I always thought OBS was the issue until I started using G-Sync. That revealed the numerous monitor certification issues to me. Some FreeSync monitors don't even have the reduced blank timings like they should, so NVIDIA is trying to 'certify' some of them. :/
 

darthclide

Member
There is actually quite a few things going on....

VESA don't like the 60hz model for LED monitors and is supposed to provide new timings. Since they didn't, most are bound to use fake refresh rates in the mean time. They recommended using the LCD Reduced Blank 60hz over the previous one since 2013; it turns down the power on the Vertical timings while providing higher refresh rates. I used CRU to make a 59.94hz and 60hz reduced blank refresh rate on my G-Sync monitor and replaced the previous 60hz. I set OBS to capture at 59.94hz, then changed the monitor to 59.94hz refresh rate. The capture was smooth, however.

The preview and Display Capture are experiencing this stutter because of Windows 10's composite optimizations. It would go away if (not implying) OBS was running in a full screen borderless mode (implemented by Microsoft since Windows 8 because people wanted borderless gaming from Windows 7). I always thought OBS was the issue until I started using G-Sync. That revealed the numerous monitor certification issues to me. Some FreeSync monitors don't even have the reduced blank timings like they should, so NVIDIA is trying to 'certify' some of them. :/
I don't want to sound stupid, but could you condense your 2 paragraphs into concise points on 1. What you think is going wrong and 2. How to fix it?
 
What I think is going wrong:
-Monitor manufacturers ignoring VESA's refresh rate timings, especially FreeSync monitors.

How to fix:
-All monitors have to be recertified by the manufacturer. Replace current refresh rates with reduced blank ones.
-OBS has to take full advantage of Windows 10 borderless mode and frame buffering with GPU's
-Microsoft engineers to improve Desktop Windows Manager.

It's not so cut and dry to fix. First you must understand that code is being used to maintain 60 frames per second in the preview to match the scan rate of your monitor's full desktop.
 

darthclide

Member
-Monitor manufacturers ignoring VESA's refresh rate timings, especially FreeSync monitors.
But what if my monitors were bought before variable refresh rate monitors were in existence?

-OBS has to take full advantage of Windows 10 borderless mode and frame buffering with GPU's
-Microsoft engineers to improve Desktop Windows Manager.
Only these apply to me because I had 0 issues before 2018.

It's not so cut and dry to fix.
Which is exactly why it shouldn't be the end-user who works on this. OBS developers need to go after this bug using all tools at their disposal. That includes talking to a DirectX expert at Microsoft about this, and working together to solve this.

I am still hoping someone can come in here with a x299 motherboard with a core-x processor and nvidia graphics card. If they can confirm they get this preview stutter as well, then my idea that this is planned obsolescence between Intel and Microsoft goes out the window.
 
But what if my monitors were bought before variable refresh rate monitors were in existence?
It's the EDID of that monitor that has been the problem even if it was purchased before VRR's hit the market. Like you said....users shouldn't have to make corrections on this level.

OBS developers need to go after this bug using all tools at their disposal.
It's open source. If anyone has the coding experience to compile it into the Universal Windows Platform to see how it responds over the Desktop Composition, then they can just have at it. Some apps, including this one, are still using DirectShow, which was replaced by Media Foundation. The question is does the same stuttering happen in the Streamlabs version? That's why I said there are so many variables here....but this is an awesome discussion that has to happen going forward. The May 2019 update will change things even further with Windows 10 and UWP.
 
Not to ride off the tracks, but the ultimate goal is to have an application that we can use to broadcast at the proper frame rates. Corsair (Elgato), Razer, and all of those devices with HDMI input need to be included in this topic too. I have a Razer Ripsaw and I asked them about this issue a long time ago....received zero response even to this day.
 

darthclide

Member
It's the EDID of that monitor that has been the problem even if it was purchased before VRR's hit the market.
But as I said, I had 0 problems before 2018. So while some people can blame the monitor, I can only blame OBS and/or Windows. It truly is fascinating that after so many posts on this thread, there is not 1 developer willing to speak. I understand that this is open source, and it is all volunteer operated. But you would think there would be at least 1 person brave enough to tackle a real challenge instead of the usual posts that come through here with people trying to stream higher resolutions/fps on a low-end computer.
The May 2019 update will change things even further with Windows 10 and UWP.
I will be shocked if this actually fixes anything though. Windows has had issues forever now related to refresh rates and/or dual monitor setups. Heck, what about the bug where if you only have 1 application open and it is fullscreen, you can't alt tab out to your desktop. You must have at least 1 other item open on your primary monitor if you want to see your taskbar on the primary monitor. This is apparently considered a "feature", so good luck ever having it fixed. I wouldn't doubt if this preview stutter is a symptom of some other "feature" that Microsoft will never fix.
 

darthclide

Member
Still hoping someone could chime in here if they have an x299 board with a decent CPU + Nvidia card. I am truly curious how that EVGA technician has avoided this problem. Perhaps he just got lucky with his monitors that he used?
 

darthclide

Member
They have not. 1903 installed, same stutter issue.

Hmmm, you were talking about 120hz in your first post, but this issue is happening even on 60hz panels. There is a small chance this fixes it for 60hz, but I don't really feel like being the guinea pig. With my luck, something else would break on top of this current problem.

It looks like we are still waiting for a developer here who is selfless enough to help. Even if that involves contacting someone from Microsoft to get on this.
 

darthclide

Member
I tried on both 60hz and 120hz, seeing exact same issue with the stutter that I've always seen.
But did you try on an actual 60hz panel? For complete testing we can't just lower the refresh rate on a monitor, we need to see what happens on a bare-bones monitor.
 

TheChill

New Member
Hi there! This sounds exactly like the issue some of us have been facing for a long time. There are several threads about this particular issue, but it seems no one managed to find a fix for this.
https://obsproject.com/forum/thread...preview-which-goes-into-recorded-videos.77744
https://obsproject.com/forum/threads/frame-rate-is-cut-in-half-stutters-every-10-minutes.39269

From what I've understood, this problem is external to OBS. The same stutter shown in the preview every 10-15 minutes also goes into the recorded videos and, at least in my case, no lagged / skipped frames are logged by OBS. It seems there's some kind of prioritization bug involving Windows DWM or DirectX, that results in the capture of duplicated frames by "background" processes like OBS. These repeated frames are the source of the 'stutter'.

I even tried fiddling with the OBS source code, specifically the parts which affect the 'Desktop Capture' (Desktop Duplication API), but it only made things worse. From my testings, I concluded that everything that uses DirectX 11 to hook / capture frames (Game / Window / Display Capture) would eventually begin stuttering after some time.

Maybe the use of a different source, like acquiring frames of a capture card through DirectShow, will bypass this issue. But I'm not 100% sure about this...

Sorry for sorta necro'ing this, but since you have fiddled with the code, did you consider comparing the current frame with the previous frame and ignoring duplicate frames? It may have been worth looking into...
 
Top