Question / Help Choppy fps in OBS recordings

Harsha

New Member
Hello,

I am running OBS 24.0.1 (64-bit) on Windows 10. And here is my rig which I built one and a half years ago : https://in.pcpartpicker.com/list/w64cbX

Until like 10 days ago, I had been using shadowplay to record my gameplay because my rig had always struggled with OBS (constant fps drops both in-game and in the recordings even with NVENC).

But then I found out that Nvidia had collaborated with OBS for version 23.0 and that the new version will "leverage the NVIDIA Video Codec SDK, which will greatly improve performance and reduce the FPS impact of streaming and recording".

So I installed the new version of OBS and this time, there were indeed no fps drops in-game that I could notice and although the recordings were also better than the last time, the fps in the recordings was really choppy. I've tried to fix it and make the videos look smooth but in vain.

One of the things I've tried is changing my monitor's refresh rate from 144hz to 120hz. Because I was recording at 1080p 60fps and because unlike 144, 120 is divisible by 60, I thought recordings might be smooth if I play at 120hz. There was a bit of improvement, but the recordings were still being choppy now and then, so I switched back to 144hz.

So since I can't really seem to fix the issue myself, I decided to ask for help here. Here's a raw video I recorded today : https://youtu.be/JA7s8M-lbFM (remuxed it from flv to mp4 before uploading)

And here's an upscaled version in case the bitrate is too distracting : https://youtu.be/WA33qKFPBaI

And here are the pictures of the task manager and the OBS stats window after I had just stopped recording : https://imgur.com/a/qg6ww65

Just to be clear, I was playing at 144hz when I recorded this.

The choppiness might not be too obvious on youtube but I can see it in VLC between 0:25 and 0:30, between 0:36 and 0:39 and between 0:45 and 0:50. And I'd like to point out that this recording in particular was relatively less choppy. The choppiness is sometimes way more obvious and regular, at least when I am playing at 144hz.

Stuff that might be relevant to this issue :

- I am using adaptive v-sync and triple buffering
- The fps in game is locked to 150 (ofc the ultimate fps I get is 144 because of the v-sync)
- The game (Battlefield 2) and OBS are installed on my SSD while the recording path in OBS is set to my HDD
- My gpu's fans are broken. I can't make them spin and they don't start spinning even when temps rise. But they do spin randomly now and then
(I am pretty confident that this isn't the cause of the problem because the recordings are choppy right from the beginning when the gpu's temps are low and not just after the temps begin to rise. And also the game is 14 years old, so I think it shouldn't be much of a problem for a 1060 when the fps is capped)

If you have any questions, let me know. Would really appreciate any help on this. I am hoping I can somehow fix this issue without having to play at 120hz. Surely, there are people who record their gameplay at (smooth) 60fps with OBS while playing at 144hz.

And finally, here's the log : https://obsproject.com/logs/jQFP6yK3D9iSgMm4 (of the session in which I recorded the video I linked)
 

koala

Active Member
According to the log, OBS did not lose any frame. Neither while compositing, nor while encoding. The system was not overloaded. If you still encounter lags or lost frames, they were lost outside of OBS. This means, it were either lost before OBS grabbed the frame from the frame buffer of the GPU, or they are lost within the media player during playback.
Watching your Youtube video, I am unable to see any choppiness. As far as i see, not a single frame is duplicated. It's very difficult, since your footage changes view every second and I am unable to get into some smooth flow where a lag can be seen. I concentrated on the flow on the compass, and on the compass I wasn't able to see any lag or duplicated frame.

It might be that the video is not completely smooth, this is due to the fact that the display fps isn't the same as the recording fps. This will always happen to some extend if the fps the footage was generated by the game isn't dividable without remainder by the recording fps, i. e. display/recording isn't 60/30, 60/60, 120/60, 180/60, 120/30 etc.

This is no limitation of OBS, it's how frames are generated and perceived. A video is smooth, if the time distance between each frame is the same at generation in the game engine as well as displayed in a media player. 144 fps means a frame is generated ever 6.84 ms. Recording at 60 fps means a frame is taken every 16.6 ms. With 144 fps, frames are generated at 0 ms, 6.84, 13.9, 20.8, 27.8, 34.7, 41.6, 48.6, 55.5 etc.
With 60 fps, frames are recorded at 0 ms, 16.6, 33.3, 50, 66.6, 83.3, 100. You see that you grab frames 0, 2, 4, 7. Between 4 and 7 there are 2 frames left out, but only 1 for the others. This is not a constant flow of frames generated at equal time distance, and this is perceived as being slightly non-smooth. This can only be avoided if generation and recording is dividing without remainder.
 

Harsha

New Member
Hmm alright. I think I will play at 120hz then. Thank you for your explanation!

But yea, the choppiness is pretty hard to notice in the youtube video. After I made this thread, I recorded some more gameplay and I uploaded a small part which I think is much more obvious in terms of choppiness if you download and watch it. You can find it here if you want :

https://mega.nz/#!xOpw1I4T!HMvnoj1-_RX29va2A9OqfU_yEZ2KGbvi2WFa9eHdgEo

And here's that session's log : https://obsproject.com/logs/gVnYS31HK1BeBAK1
 
Top