Genshin DPS Calc
New Member
For years I have been frustrated by the random stutters that appear every few minutes or so, using both of my PC (old and new).
So after spending weeks of trials and errors, I have finally able to fix it 100% (at least for the recording), and I can even manipulate the stutters, and predict when is going to happen.
I know the culprit behind those random stutters, which some people already mentioned, which is the refresh rate difference between the monitor and the video frame rate.
ANALYZING THE CULPRIT
I used VSYNC OFF for OBS program setting in Nvidia control panel to know exactly what's going on before the stutter happens.
So when the OBS is out of sync with the captured source, it will stutter, but the problem is, the stutter duration can be much longer than it needs to be.
For example:
If my monitor is 60Hz and my OBS video frame rate is set to 61fps, then the out of sync will happen every 1 second, and the stutter only lasted like a few frame drops (just a blip to the eye)
But if I set my OBS video frame rate to 60.125fps, then the out of sync (or the stutters) will happen every 8 seconds, BUT the stutter duration will also be longer, as if it's waiting for the sync to get in sync again, without OBS trying to do anything.
In most scenario (most people), where their monitor refresh rate is just slightly inaccurate like 60.001Hz, the out of sync will happen every 1000 seconds or 16.6 minutes, and the stutter duration can be as long as 20-30 seconds.
The solution is, to either set a custom refresh rate so it can be as close to 60.000000 Hz as possible (which not many people can do and not even possible), or change the video frame rate to fractional FPS value.
I have applied both solutions and now I can record perfectly without any random stutters anymore.
But this involves me opening up displayhz.com and wait for the result to be as accurate as possible.
Even with that, GPU clock speed also affect the Hertz value, so I had to open up my game and displayhz simultaneously, to get the perfect Hertz of my monitor (simulated with playing a game).
Then, in order to put the result (60.000114 Hz in my case) to the OBS video frame rate setting, I must play around with math, trying to find the perfect Numerator and Denominator to get that 60.000114 Hz. Not all people can do this.
This is why I spent a few days to make this video:
Now what I wish from OBS developers are:
1. If you guys can integrate a Hz analyzer to the video frame rate setting, and can automatically calculate and set the perfect Numerator and Denominator for the user, it should be awesome! So a user just need to press the "Check my monitor refresh rate" button, then after waiting for a few minutes, a user can press the "Stop" button, and the result will be applied automatically, with the perfect video FPS matching the monitor refresh rate.
Keep in mind that for most accurate result, the GPU clock speed must be brought to the running speed, to simulate a user recording a running game. GPU clock speed also affect the sync as shown at 8:42 on my video above)
2. Or, if you guys can bring variable frame rate for recording, I guess that would solve the issue completely? at least for recording. I know that Windows Game DVR can record a perfect game video with no stutters because it uses variable frame rate. The only issue is that their bitrate is maxed out at 72Mbps and can't go higher than 2560px width or 1440px height.
3. BUT, all of those solutions can't be used for streaming, because as far as I know, you can't stream using weird fractional FPS value.
So you are left with the constant 60fps setting for streaming, and the only solution I can think of is, once OBS detected that the video is about to out of sync (check out the sync demo at 9:15 on my video above), OBS should somehow "reset" the capture and have it refreshed from the middle of the sync. So instead of having full blown 20 seconds of full stutters, you get a few frame drops instead, just a blip every few minutes.
I don't know if it can be done, but I'm hopeful!
Maybe once it detected a couple of frame drops in a pattern, then reset?
I think that's it from me, thank you for reading and I hope we can find a true solution to end this interval stutters issue that has been plaguing for years.
So after spending weeks of trials and errors, I have finally able to fix it 100% (at least for the recording), and I can even manipulate the stutters, and predict when is going to happen.
I know the culprit behind those random stutters, which some people already mentioned, which is the refresh rate difference between the monitor and the video frame rate.
ANALYZING THE CULPRIT
I used VSYNC OFF for OBS program setting in Nvidia control panel to know exactly what's going on before the stutter happens.
So when the OBS is out of sync with the captured source, it will stutter, but the problem is, the stutter duration can be much longer than it needs to be.
For example:
If my monitor is 60Hz and my OBS video frame rate is set to 61fps, then the out of sync will happen every 1 second, and the stutter only lasted like a few frame drops (just a blip to the eye)
But if I set my OBS video frame rate to 60.125fps, then the out of sync (or the stutters) will happen every 8 seconds, BUT the stutter duration will also be longer, as if it's waiting for the sync to get in sync again, without OBS trying to do anything.
In most scenario (most people), where their monitor refresh rate is just slightly inaccurate like 60.001Hz, the out of sync will happen every 1000 seconds or 16.6 minutes, and the stutter duration can be as long as 20-30 seconds.
The solution is, to either set a custom refresh rate so it can be as close to 60.000000 Hz as possible (which not many people can do and not even possible), or change the video frame rate to fractional FPS value.
I have applied both solutions and now I can record perfectly without any random stutters anymore.
But this involves me opening up displayhz.com and wait for the result to be as accurate as possible.
Even with that, GPU clock speed also affect the Hertz value, so I had to open up my game and displayhz simultaneously, to get the perfect Hertz of my monitor (simulated with playing a game).
Then, in order to put the result (60.000114 Hz in my case) to the OBS video frame rate setting, I must play around with math, trying to find the perfect Numerator and Denominator to get that 60.000114 Hz. Not all people can do this.
This is why I spent a few days to make this video:
Now what I wish from OBS developers are:
1. If you guys can integrate a Hz analyzer to the video frame rate setting, and can automatically calculate and set the perfect Numerator and Denominator for the user, it should be awesome! So a user just need to press the "Check my monitor refresh rate" button, then after waiting for a few minutes, a user can press the "Stop" button, and the result will be applied automatically, with the perfect video FPS matching the monitor refresh rate.
Keep in mind that for most accurate result, the GPU clock speed must be brought to the running speed, to simulate a user recording a running game. GPU clock speed also affect the sync as shown at 8:42 on my video above)
2. Or, if you guys can bring variable frame rate for recording, I guess that would solve the issue completely? at least for recording. I know that Windows Game DVR can record a perfect game video with no stutters because it uses variable frame rate. The only issue is that their bitrate is maxed out at 72Mbps and can't go higher than 2560px width or 1440px height.
3. BUT, all of those solutions can't be used for streaming, because as far as I know, you can't stream using weird fractional FPS value.
So you are left with the constant 60fps setting for streaming, and the only solution I can think of is, once OBS detected that the video is about to out of sync (check out the sync demo at 9:15 on my video above), OBS should somehow "reset" the capture and have it refreshed from the middle of the sync. So instead of having full blown 20 seconds of full stutters, you get a few frame drops instead, just a blip every few minutes.
I don't know if it can be done, but I'm hopeful!
Maybe once it detected a couple of frame drops in a pattern, then reset?
I think that's it from me, thank you for reading and I hope we can find a true solution to end this interval stutters issue that has been plaguing for years.