Question / Help Random stuttering in preview which goes into recorded videos.

butthurtkitty

New Member
Most big streamers have a dedicated streaming PC with a capture card, so they don't use any of OBS capture methods (display, window, game capture) to stream and don't have this problem. This problem doesn't seem to happen with the video capture source from what I can tell.

That, or they are simply using a combination of hardware that doesn't have this problem.

I have occasionally seen this happen with smaller streamers, however.

please see reply above
 

Arne

New Member
For me it really helped to set in nvidia system control under Sorround, PhysX Configuration at the right switch processor from Automatic to cpu then restart pc for me it helps and the shutter is gone.
Hope will help somebody

Greetings :)
 

BK-Morpheus

Active Member
Some news at least for my kind of problem.
First of all, we can agree, that there are many different kinds of problems or sources of problems in this thread.
Most common: rendering lag that can be seen in the log file
At least this can be fixed 99% of the time by making sure that the GPU always has some power left for the scene rendering of OBS. So simply use a frame limit for the game and adjust in-game details accordingly, until the GPU load always stays below ~95%.

Then there are Windows 10 Game DVR and other recording tools like Shadowplay that should be disabled.

Next on the list is the mixed refreshrate multi-monitor setup, that windows often struggles with.
In most cases, you can only avoid it by not having any GPU accelerated programs opened on the second monitor (OBS with preview enabled, webbrowser with stream/video playing...).

Then there are also a potential PCIe bandwidth problem with rigs that use more than one graphics card and a CPU+Mainboard combination that will reduce the x16 PCIe slots to only x8, when a second GPU is installed. In these cases, it often works better with just one GPU and full x16 PCIe speed.

And of course, some games are simply behaving very odd, like Destiny 2.
It can only be captured (or at least when I played it) when played in window or borderless mode and game_capture is not working, so you need to use window_capture or screen_capture, which are way worse (performance impact) then game_capture. I think you also had to disable windows fullscreen optimizations for the .exe file.

In my case none of theses common causes are the case.
When I record/stream for example Monster Hunter World or Rocket League, I will see some stutter in the OBS preview, that will also be in the recording/stream. This stutter is not very pronounced..it looks more like some microstutter or frame timing problem. This stutter also disappears and comes back. Some times it takes more than 15minutes before it appears for one minute and then disappears again.
By the way, it can also be spottet, when I record/stream with only 30fps, but it's way harder to spot, as the whole video is not as fluid as with 60fps. So for testing, I went with 60fps, as the stutter can be spottet directly in the live preview of OBS and in the recording as well.

I monitor my GPU/CPU load and can definitely say, that neither CPU nor GPU were even hitting over 60% in Rocket League, when the micro stutter appears (it doesn't seem to be linked to a specific high or low load). It also appears when using NVENC.
Of course my OBS log file did not show rendering lag or encoding problem, otherwise I would have known, where I could try to solve the problem.

Some times in local recording it's hard to tell, if the stutter is really there, or if it's just VLC (a few times I noticed, that the stutter was not there, after I jumped back 3sec in the video and played it again, so in theses rare moments, it was just the Playback software).

Things that I already did to get rid of this problem:
- I uninstalled or closed Tools like MSI Afterburner+RTSS or Desktop Gadgets like CPU and GPU Monitor
- did try different fps limit methods (ingame, driver, RTSS and so on)
- ran the whole system without any Overclocking
- used the "Custom Resolution Utility" to make sure that both monitors are running at true 60Hz instead of 59.94Hz which Windows shows as 60Hz)
- created a new/empty OBS scene collection with just a game_capture source in it
- did a completely new OBS installation with empty profile
- used a low resolution base canvas + output canvas and the bilinear scaling instead of lanczos
- last year I even did a completely new/fresh Windows 10 installation to verify

During the whole process of trial and error, I also changed the game_capture options....at least I did try it with and without the "anti cheat compatibility" and with limiting fps during recording feature.
Nothing helped.

Today I tried again with some of those game_capture options (not really sure which ones I already tried last year).
Per default (at least in my profile) capture mouse cursor and the anti cheat compatibility hook were active.
Interestingly I got both live preview and recording completely smooth, after additionally enabling the allow transperancy option and the record overlays from 3rd party (Steam etc.) options.

At first I was sure, that this was just another coincidence and that the stutter will come back, after I play a little longer or close and start OBS again.
So I did test the whole thing again for two more times and the stutter did not come back. Maybe it will, but as I was able to reproduce the problem pretty fast and reliable in Monster Hunter World before, I am slightly positive, that this might be the fix for me.
Of course, if MHW will hit 98-100% GPU load (which is does some times during hunts), there will be a little stutter here and there, but this can be expected. In the base / camp however my GPU load stays between 65-85% GPU load and I was able to spot stutter there almost instantly after starting the game or at least after coming back from a hunt. This has not happened again, since I changed those two options in the game capture properties.
I'm not sure which one of those two additonal options has helped me (maybe it was "allow transparency", or enabling overlay recording), but it seems to work now.

If some one here has comparable circumstances on their stutter problems, give it a try.


edit: nevermind, after 30min of playing Rocket League, Stutter Session came back, still no dropped or skipped frames :-(
 
Last edited:

alexitx

New Member
Some news at least for my kind of problem.
First of all, we can agree, that there are many different kinds of problems or sources of problems in this thread.
Most common: rendering lag that can be seen in the log file
At least this can be fixed 99% of the time by making sure that the GPU always has some power left for the scene rendering of OBS. So simply use a frame limit for the game and adjust in-game details accordingly, until the GPU load always stays below ~95%.

Then there are Windows 10 Game DVR and other recording tools like Shadowplay that should be disabled.

Next on the list is the mixed refreshrate multi-monitor setup, that windows often struggles with.
In most cases, you can only avoid it by not having any GPU accelerated programs opened on the second monitor (OBS with preview enabled, webbrowser with stream/video playing...).

Then there are also a potential PCIe bandwidth problem with rigs that use more than one graphics card and a CPU+Mainboard combination that will reduce the x16 PCIe slots to only x8, when a second GPU is installed. In these cases, it often works better with just one GPU and full x16 PCIe speed.

And of course, some games are simply behaving very odd, like Destiny 2.
It can only be captured (or at least when I played it) when played in window or borderless mode and game_capture is not working, so you need to use window_capture or screen_capture, which are way worse (performance impact) then game_capture. I think you also had to disable windows fullscreen optimizations for the .exe file.

In my case none of theses common causes are the case.
When I record/stream for example Monster Hunter World or Rocket League, I will see some stutter in the OBS preview, that will also be in the recording/stream. This stutter is not very pronounced..it looks more like some microstutter or frame timing problem. This stutter also disappears and comes back. Some times it takes more than 15minutes before it appears for one minute and then disappears again.
By the way, it can also be spottet, when I record/stream with only 30fps, but it's way harder to spot, as the whole video is not as fluid as with 60fps. So for testing, I went with 60fps, as the stutter can be spottet directly in the live preview of OBS and in the recording as well.

I monitor my GPU/CPU load and can definitely say, that neither CPU nor GPU were even hitting over 60% in Rocket League, when the micro stutter appears (it doesn't seem to be linked to a specific high or low load). It also appears when using NVENC.
Of course my OBS log file did not show rendering lag or encoding problem, otherwise I would have known, where I could try to solve the problem.

Some times in local recording it's hard to tell, if the stutter is really there, or if it's just VLC (a few times I noticed, that the stutter was not there, after I jumped back 3sec in the video and played it again, so in theses rare moments, it was just the Playback software).

Things that I already did to get rid of this problem:
- I uninstalled or closed Tools like MSI Afterburner+RTSS or Desktop Gadgets like CPU and GPU Monitor
- did try different fps limit methods (ingame, driver, RTSS and so on)
- ran the whole system without any Overclocking
- used the "Custom Resolution Utility" to make sure that both monitors are running at true 60Hz instead of 59.94Hz which Windows shows as 60Hz)
- created a new/empty OBS scene collection with just a game_capture source in it
- did a completely new OBS installation with empty profile
- used a low resolution base canvas + output canvas and the bilinear scaling instead of lanczos
- last year I even did a completely new/fresh Windows 10 installation to verify

During the whole process of trial and error, I also changed the game_capture options....at least I did try it with and without the "anti cheat compatibility" and with limiting fps during recording feature.
Nothing helped.

Today I tried again with some of those game_capture options (not really sure which ones I already tried last year).
Per default (at least in my profile) capture mouse cursor and the anti cheat compatibility hook were active.
Interestingly I got both live preview and recording completely smooth, after additionally enabling the allow transperancy option and the record overlays from 3rd party (Steam etc.) options.

At first I was sure, that this was just another coincidence and that the stutter will come back, after I play a little longer or close and start OBS again.
So I did test the whole thing again for two more times and the stutter did not come back. Maybe it will, but as I was able to reproduce the problem pretty fast and reliable in Monster Hunter World before, I am slightly positive, that this might be the fix for me.
Of course, if MHW will hit 98-100% GPU load (which is does some times during hunts), there will be a little stutter here and there, but this can be expected. In the base / camp however my GPU load stays between 65-85% GPU load and I was able to spot stutter there almost instantly after starting the game or at least after coming back from a hunt. This has not happened again, since I changed those two options in the game capture properties.
I'm not sure which one of those two additonal options has helped me (maybe it was "allow transparency", or enabling overlay recording), but it seems to work now.

If some one here has comparable circumstances on their stutter problems, give it a try.


edit: nevermind, after 30min of playing Rocket League, Stutter Session came back, still no dropped or skipped frames :-(

This describes exactly one to one what I am experiencing basically since I started using OBS Studio.
I've been watching a few threads about this exact same thing from a long time, but I don't see anything heading towards any solution yet.

I posted a comment about week and a half ago on my own thread about this issue (which was created half an year ago), but still nothing...
In terms of troubleshooting - I've tried way more things than that (doing multiple reformats and clean OS reinstalls were probably the least important ones).

I'd also like to cooperate and provide any assistance if necessary, in order to make some progress (if possible) about this issue. That's unacceptable to some extent in my opinion, despite being extremely weird...
 

BK-Morpheus

Active Member
In one of the subforum here I saw that bugtracking is now done on mantis, so I posted this problem there.
Maybe the developers/gurus are active in the mantis bug tracker instead of this windows support forum.

As you said, this problem seems to be existent since years. The bad news is, that I can't think of any alternative for me.
SLOBS is based on OBS, so I don't expect any different game capture algorithm there. Xsplit is not for free and when I tested it last year, I got some stutter with Xsplit as well.
Shadowplay is working perfect, but it's not really customizable and only well for local recordings (for streaming I prefer x264).
Bebo has only 720p, 900p, 1080p available and no local recording function at all.

So I still hope, that some day this problem will be fixed in OBS or Windows (not sure, on which side the culprit is).
 

alexitx

New Member
Well, I had this problem even back then when I was using Windows 7.
For me (currently) Windows 10 is way worse in certain aspects, for example - different refresh rate multi-monitor setups, GPU prioritization, desktop composition (DWM) causing issues, etc.
But because of it's features and being the only "fully supported" operating system everyone is kind of forced to use it. New CPU architectures, chipsets, NVMe M.2 SSDs, and so on don't even support Windows 8 / 8.1 as far as I know and require Win 10.

On the topic:
I suspect that the stuttering issues could be related to the way OBS (and other similar recording software / forks of OBS Studio) capture windowed / fullscreen applications, in this case - games.

I don't have that much experience in this particular area (how FFmpeg handles the framebuffer capturing) but it looks like and I'm pretty confident that this could potentially be the cause. I haven't heard or seen anything about a bug related to this, nor a well-known / widespread problem in the forums, unlike other common issues.

I also don't have any other choise or alternatives at the moment, but will hopefully provide adittional information and update my thread if there is any potential solution.
 

JohnCiber

New Member
Hi guys! Any news on this topic? Recently I built a second computer for recording/streaming only and the stutter is still there! :(
 

I3ordo

Member
I should not have written this,
I have dealth with this issue and it took like 3 weeks for me solve it out and i can not pinpoint the key action that removed it, now i only get frame skips or encoder lags but that sfine, that can be reported by OBS.

, what i learned so far:
I have to stop using GPUZ tool for looking the "gpu load" but instead check the task manager and GPU usage. gpu load maybe at 40% on GPUZ but that is load of the "3d engine". however, task manager will report a higher value as it also tracks the "DMA engine of the GPU which is also called "copy engine".

I suggest, unplug any of your displays off from your HDMI out of your GPU and use display ports with HDMI converters. (this definitely removed my one frame double frames of the 2 previous glitch.
Set NV inspector global profile to 60.00 (v2) and set smooth AFR to on,
Set OBS's own profile (again from NVI) to 180fps. so that you can have studio mode and a windowed projector to avoid having a 20fps recording.
DOnt have a window capture on your scene collection that points to lock.exe as it tends to set it self lock.exe if i cant find fire fox or VLC window as they are not open.
 
Last edited:

thetanaz

New Member
Sorry for waking this old topic up but
I think I found the solution to this problem,not sure though.It has to do with refresh rate.If your monitor ( like mine) is 144hz and you're recording at 60FPS that means that the frames being drawn are not divisible by the frames that you're recording so there is an overlap.What I did was set my monitor to 120hz and limited the game FPS to either 120FPS or 60 FPS (depending on how demanding the game is) and my stuttering was gone.So bottom line is:
If you want to record at 60 FPS you need to use 60hz,120hz,180hz etc. so that when you divide it you have a full number of fps drawn/recorded - 60hz = 1/1FPS 120hz = 2/1FPS 180hz= 3/1FPS. I think the reason it started bugging in Shadowplay as well as of late is because before Shadowplay used to have Variable FPS on the recordings which helped with that but due to community backlash ( videos went out of sync ) I think they made it fixed so it has the same problems as OBS. That's why some of you find it better when you set the recording FPS to 120 - because there's less misalignment of Frames Recorded / Frames Drawn.
 

Kapu

New Member
Hello there & happy new year !

I thought I had somehow managed to get rid of this stuttering problem once I changed some of my PC's components/settings but the thing is, darkness my old friend is still very present.

I even tried to use Video Capture Device on my single computer setup (graphics card to capture card) but it didn't help.

I noticed something quite interesting : Browser sources in my scene are recorded flawlessly. No stuttering, no duplicate frame. Of course it doesn't help much since you want to primarily use Game Capture, but hey maybe that's a clue.

So now that I've made all these tests on different setups & settings (more details in this topic and the one I made : https://obsproject.com/forum/threads/regular-stutterings-on-preview-recorded-videos.80031/), I actually wonder if it's possible on OBS to get a perfect 60 fps / no duplicate frame / no stuttering on a 30-minute sequence (with Game, Window or Display Capture sources) using a single gaming+streaming computer...

It would be nice to get some help from devs or experts on this, since this issue is far from being new. Thanks.

@thetanaz : thank you for your message. When I record I always make sure my monitor is at 60 or 120 Hz, so unfortunately that's not it.
 
Last edited:

I3ordo

Member
no dev, i had to use two separate pcs and use an elgato pci card.

no matter what, if a game is being played, it should be transfered via hardware (like from an HDMI output port to a hardware device then to OBS.


If you use NDI or somekind of software, there will be skipped frames between video texture (game) and the link to OBS. that is why , obs is perfectly stable at thing it produces , anything it receives may lack some frames... If NDI had proper buffering or maybe i could use it properly....


The thing that saves hardware devices like elgatos are the buffering. they always leave a headroom a couple of frames so when the image is so dynamic , it can have time to transfer.

Put elgato device into -no buffer mode, you will see same skips ,
 

Hudson's Skull

New Member
I might have a possible solution.

I've been experiencing the micro-stutter as well, I have a 2 pc setup and I am using NDI to send my game-play over the network to my recording PC, the stuttering occurs quite frequently and sometimes lasts indefinitely. I've tried various frame rates in OBS on both PCs (integer 60, common 60, common 59.94, etc). The only way I could get rid of the stutter was to use OBS for broadcasting on the gaming PC and Xsplit for receiving and recording on the second PC (with the "force constant frame rate" box ticked in Xsplit), but I effin' hate XSplit!!!. This led me to believe that the problem is definitely on the receiving end and from what I could gather by lurking through posts on this board, it's most likely related to monitor refresh rates.

So I tried something last night. Using the UFO website, I checked the refresh rate of the monitor I am using on the recording computer. The monitor should be 60hz but it's indicating 59.999hz on the website. I also tested my monitor on the gaming PC and it's indicating a value fluctuating between 60.002 and 60.003 (but I don't think it really matters what the exact refresh rate is on the gaming PC since OBS broadcasts over the the network at whatever FPS I set it to). So I wanted to try matching my 59.999hz monitor by broadcasting at 59.999fps but it's impossible to set decimal values with integer fps settings. Then I noticed the Fractional FPS value setting. Long story short... I set the OBS video settings on the gaming PC to "Fractional FPS value" with a numerator value of 59999 and a denominator value of 1000, theoretically this should give me a 59.999fps value (not taking any chances, I set it up like this on the recording PC as well). I've only played a few hours and intend to test it out more thoroughly tonight but so far I've not experienced the micro-stutter, at least it doesn't appear to be as obvious as before, there is some slight stutters every once in a while but it's probably due to the game dipping below 60fps IDK, in any case it doesn't last long.

I'm going to record approximately 2 hours of footage in a few minutes and report back here later with results.
 
Last edited:

Unconquered

Member
Appreciate the idea and glad it seems to work for you, unfortunately many of us affected are on 1 PC setups.

Tested my refresh rates just to be 100% sure, but they're both 60mhz on the nose
 

Hudson's Skull

New Member
OK, I've done some more testing and here are the results... I've recorded a few more hours of footage and so far so good. The micro-stuttering in the preview window on the streaming/recording PC is no longer visible (to my poor eyes at least), and the recording had no micro-stutter either. The only problem I had was when I did some editing in Sony Vegas afterwards (I use it to clean up my microphone's audio track). The rendered video had a bit of a micro-stutter to it but I think this was due to the fact that I recorded the footage with the same fractional FPS value that the OBS frame-rate setting on the gaming PC was set to (59999/1000) and my Vegas settings were set to render at 59.94fps (Vegas Pro 15 doesn't allow me to use a constant 60fps or any other custom value) so... I'm no expert but I think that by setting OBS video settings on the recording PC back to 59.94fps, it should be better for editing in Vegas.

I've recorded some footage at 59999/1000 and also at 59.94fps, I didn't get around to rendering the 59.94fps footage in Vegas to see if the rendered video was stuttering but there wasn't any visible difference when I played the videos with PotPlayer and the preview in OBS was hunky-dory during the recording as well. So my guess is that it doesn't matter what frame-rate you use on the recording/streaming PC as long as the OBS frame-rate settings on the gaming PC is an exact match to the recording/streaming PC's monitor refresh-rate.

So in conclusion... For a 2 PC setup using NDI plug-in follow these steps:

1- Verify what the exact refresh-rate is on the streaming/recording PC's monitor by using https://www.testufo.com/refreshrate (the refresh-rate might say 60Mhz but it could be slightly different like in my case 59,999Mhz)

2- On the gaming PC, under the OBS video settings tab, set the frame-rate to match the refresh-rate of the streaming/recording PC monitor by using the "fractional FPS value" setting (for example in my case : My monitor = 59.999Mhz ; setting the Numerator to 59999 and the Denominator to 1000 will result in a 59.999fps value)

The preview window on the streaming/recording PC should no longer have any micro-stutter and you should be able to stream or record your gaming at whatever frame-rate you wish without any trouble.

Sorry for the long post, just wanted to be as thorough and comprehensive as possible for anyone less knowledgeable about OBS video and frame-rate settings. This method seems to work for me, I hope it helps anyone with a similar setup.
 

koala

Active Member
I'm sorry, but there is no such fps or monitor refresh rate as 59.999. In Windows, if you see a monitor refresh rate of 59 Hz in some setting, that's actually 59.94 Hz. See this Microsoft KB article: https://support.microsoft.com/en-nz...ndows-does-not-apply-the-user-selected-settin
Usually, you can safely ignore this setting.

What you should do is within OBS and your video postprocessing software. The capture fps in OBS should exactly match the fps of the final product you create with the postprocessing software. This way you can be sure your video will be as long as the original, the postprocessing software has exactly one input frame for each output frame, and the audio will not go out of sync.

If you use Sony Vegas, and Sony Vegas can only produce 59.94 Hz video output, you should set in OBS Settings->Video->Common FPS Values->59.94. If you use NDI in between and a second OBS, set this value in the second OBS as well. Not 60, not 59, not 59.999, not 59999/1000. Set 59.94. If you set the fps dropdown box in OBS to "Common FPS values", you will find this value. It's the equivalence of 60000/1001 if you use fractional values, but not 59999/1000 and not 59940/1000 as well.
 

Hudson's Skull

New Member
I'm sorry, but there is no such fps or monitor refresh rate as 59.999. In Windows, if you see a monitor refresh rate of 59 Hz in some setting, that's actually 59.94 Hz. See this Microsoft KB article: https://support.microsoft.com/en-nz...ndows-does-not-apply-the-user-selected-settin
Usually, you can safely ignore this setting.
Yes I know this, but I'm not setting anything in windows. This is the result I get from testing the monitor with UFO which is designed to detect your refresh rate with more precision.

What you should do is within OBS and your video postprocessing software. The capture fps in OBS should exactly match the fps of the final product you create with the postprocessing software. This way you can be sure your video will be as long as the original, the postprocessing software has exactly one input frame for each output frame, and the audio will not go out of sync.
Yes, I understand, this is why I have used 59.94fps in the past on the recording rig, I changed it just this once for testing purposes, the video produced by OBS played flawlessly but it gave me stuttering in my final output video from Vegas so I changed it back. The difference between 59.94 and 59.999 might create sync problems after several hours maybe, but I recorded an hour and a half last night and didn't have any audio/video sync problems, I try to keep my sessions under two hours and chop them into 20-30 minute videos in post. But this thread isn't about audio/video sync problems, it's about micro-stutters that occur in the preview window of OBS and consequently appearing in streams and recordings.

If you use Sony Vegas, and Sony Vegas can only produce 59.94 Hz video output, you should set in OBS Settings->Video->Common FPS Values->59.94. If you use NDI in between and a second OBS, set this value in the second OBS as well. Not 60, not 59, not 59.999, not 59999/1000. Set 59.94. If you set the fps dropdown box in OBS to "Common FPS values", you will find this value. It's the equivalence of 60000/1001 if you use fractional values, but not 59999/1000 and not 59940/1000 as well.
It's exactly what I've been doing for the past several months, setting OBS on both rigs to the same values but the micro-stuttering has always been present. The micro-stutter appears in the preview window on the second computer (the "recording" rig), it does not appear in the preview window on the gaming rig. This can only mean that something is happening between the two that is messing up the smoothness of the playback. I'm using gigabit Ethernet switches, according to the logs I'm not experiencing any dropped frames. Many people in this thread, including me have tried different common values (59.94 and 60), integer values (60,120), and the typical fractional values (60000/1001), but the micro-stutter persists.

How can you explain the fact that my "trick" eliminated the micro-stutter in my case? You can set your monitor refresh rate to 60 and 59.94 in windows yes, but that doesn't mean that the monitor will refresh at that exact value. My monitor is supposed to be 60hz, the manufacturer says it is 60hz and Windows says it is set to 60hz, but it indicates 59.999hz with every software or website I test it with. Setting the gaming computer to a fractional fps of 59999/1000 works (for me at least), I can't explain why, it just does. My best guess is that using either 60 or 59.94 on the gaming rig is creating a problem with OBS on the recording rig where the preview window is being refreshed at 59.999 resulting in a micro-stutter in the preview window and subsequently the recording as it records what it sees. I know that my solution doesn't fit into a box of conventional wisdom but it does eliminate the problem in my case and I decided to create an account with the sole purpose of sharing my solution so that others with a similar setup may benefit from it. I'm sorry for not adhering to the technical standards of it all, but sometimes solutions can be found when you think outside the box.
 
Last edited:

Lapppy

Member
I'm sorry, but there is no such fps or monitor refresh rate as 59.999.
Not quite. Depending on the build quality of your monitor, it will report to Windows as 60hz or 59.94hz but will actually output at 59.99999 or 60.00001. No monitor is perfect.
In my case, my current monitor is a 144hz monitor that I've capped to 120hz in Windows. The monitor will actually output at 119.4hz until I use Custom Resolution Utility to force the monitor to output 120hz. If I don't do this, OBS skips a frame every 1-2 seconds.

I've also found that in the past that these slight offsets in refresh rate can cause microstuttering and that setting a fractional fps can help.
https://obsproject.com/forum/thread...-stutters-every-10-minutes.39269/#post-179644
 
Top