Question / Help Video is Choppy when Game Framerate is not 60

LeeTheENTP

New Member
I've been having an issue with my output video recently. Whether I'm recording or streaming (and regardless of bitrate, i.e. I've tested this at both 3500 and 2000Kbps), the output video is very choppy at times. I initially thought it was because I was encoding at either 720p60 or 1080p30 (which can be pretty taxing especially when the games I play are brought into consideration), but after some investigation I've determined that the output video is only choppy when the game OBS Studio is capturing is not running at a framerate that is a multiple of the output framerate. When Vsync is off, the game is pretty much always choppy since the game is usually above 60 FPS. When Vsync is on, the game is only choppy when the game drops below 60 FPS. In games like Minecraft with integrated FPS caps that have no trouble keeping the capped framerate constant, the output video is pretty much perfectly smooth.

Is there anything I can do about this? I prefer to play with Vsync off for lower input latency, but at the same time I need smooth video to stream and upload. I've already tried FPS limiters like the one in RivaTuner, but those either limit the framerate without removing screen tearing or make the game itself run choppy.

Log is attached to this post.
 

Attachments

  • 2016-07-26 17-15-36.txt
    36.5 KB · Views: 24

LeeTheENTP

New Member
I toyed around with the advanced settings and found out that if I set the renderer to OpenGL instead of D3D11, the choppiness is gone. Perhaps the issue was because I was using the same API to render the game and the video? I'll play DOOM in OpenGL mode and see if it's choppy while using the OpenGL renderer.
 

LeeTheENTP

New Member
A̶f̶t̶e̶r̶ ̶t̶e̶s̶t̶i̶n̶g̶ ̶w̶i̶t̶h̶ ̶D̶O̶O̶M̶ ̶r̶u̶n̶n̶i̶n̶g̶ ̶w̶i̶t̶h̶ ̶O̶p̶e̶n̶G̶L̶ ̶4̶.̶5̶ ̶a̶n̶d̶ ̶u̶s̶i̶n̶g̶ ̶b̶o̶t̶h̶ ̶O̶p̶e̶n̶G̶L̶ ̶a̶n̶d̶ ̶D̶3̶D̶1̶1̶ ̶r̶e̶n̶d̶e̶r̶e̶r̶s̶,̶ ̶I̶ ̶c̶a̶n̶ ̶c̶o̶n̶f̶i̶r̶m̶ ̶t̶h̶a̶t̶ ̶t̶h̶i̶s̶ ̶i̶s̶s̶u̶e̶ ̶o̶n̶l̶y̶ ̶o̶c̶c̶u̶r̶s̶ ̶w̶h̶e̶n̶ ̶r̶u̶n̶n̶i̶n̶g̶ ̶a̶ ̶D̶i̶r̶e̶c̶t̶X̶ ̶g̶a̶m̶e̶ ̶w̶i̶t̶h̶ ̶t̶h̶e̶ ̶D̶3̶D̶ ̶r̶e̶n̶d̶e̶r̶e̶r̶.̶ I don't have any DX12 games to test playing with DX12 and rendering with D3D11 to confirm that's choppy too, but I'd assume that's the case.

Minecraft has serious performance issues when OBS is using OpenGL. I'm not sure if this is a Java problem when rendering the game with OpenGL or not, but it's enough of a problem to make me switch back to D3D11 when streaming Minecraft.
 
Last edited:

Tymorafarr

New Member
You are not the only one. I noticed this effect too, it gets jarring. It's just that the issue isn't showing in logs, so they aren't putting any priority or bothering about it.

There were a few old threads here and there talking about this but to no resolution avail.
 
there ARE logs.
theres "dropped frames due to rendering lags/stalls" thing.
if preview is disabled, no rendering lags/stalls (shure, nothing has to be rendered tho)

switching preview off is the only workaround for now.

also it getting more worse if you running two instances of obs (one recording game, one recording facecam)
if preview is on, they are both causing lags to each other.
 

LeeTheENTP

New Member
After playing Minecraft with the OpenGL renderer running, I've begun to notice serious performance dips (smooth 400+ FPS to 60-100 with inconsistent frame times). I am not sure if this is a result of the poorly-optimized nature of the game's Java code causing issues when rendering the game with OpenGL while OBS is also using OpenGL or something else, but if I change the renderer to D3D11 and restart OBS, performance is back to normal.

For the time being, I'll make sure to set OBS to use the graphics API that the game isn't using when I stream.

Also, I need the preview running to make sure everything looks alright. I did try it without the preview while running Minecraft, but the performance hit was still there.
 

Sapiens

Forum Moderator
If you can't hold a steady 60 FPS because your GPU is maxing out then OBS performance will suffer, yes. Adjust your game settings accordingly.
 

LeeTheENTP

New Member
dont use openGL under windows. it's mutch slower and influences the hooking processs as well (as far as i know)
I have to use it with DirectX games to keep the stream smooth. If I use the D3D11 renderer with a DirectX game, game performance doesn't suffer but the stream's video is choppy.
If you can't hold a steady 60 FPS because your GPU is maxing out then OBS performance will suffer, yes. Adjust your game settings accordingly.
This isn't a case of lacking GPU performance - as stated in the OP, the game is consistently above 60 FPS when Vsync is off. This is a performance issue with OBS influenced by the graphics API it is using to render the video.
 

Sapiens

Forum Moderator
When vsync is off the GPU will render as many frames as possible until the system hits a bottleneck somewhere (usually the GPU). If you're running games at 4K then this isn't surprising even with a 1080.
 

LeeTheENTP

New Member
When vsync is off the GPU will render as many frames as possible until the system hits a bottleneck somewhere (usually the GPU). If you're running games at 4K then this isn't surprising even with a 1080.
The game only dips below 60 FPS when I have Vsync on. With Vsync off, I don't think I've seen it go below 62.
 

Sapiens

Forum Moderator
I don't think you understood my last post. The concern is that without vsync or some other form of frame rate limiter you're maxing out the GPU by rendering a bunch of extra frames unnecessarily. I don't care that it doesn't dip below 62, I care that it's rendering as many frames as possible until it hits a bottleneck.
 
Top