Table of Contents
One of the most common issues that streamers experience is Frame Drops. The most common cause is that the source you are streaming is generating more frames than the encoder is configured to. To Fix Frame Drops in OBS, you need to make some concessions in your gaming experience.
What I mean by this, is to utilize a solution that competitive FPS gamers would scoff at – Frame limiting. It sucks that this is the solution, especially since there is demonstratable proof that a higher framerate does improve competitive gameplay performance.
With that said, the drawbacks of having dropped frames aren’t all that detrimental. It simply makes the video playback for your audience feel a little less refined and professional. If you are involved in competitive gameplay for money, my advice is to ignore dropped frames completely – the performance edge is worth the tradeoff.
What Are Dropped Frames?
Dropped Frames are sections of a video that are thrown away, resulting in stuttering artifacts. These artifacts can make some movements, especially those in first-person games that have absurdly high rendering framerates, feel jerky. The higher the rendering frame rate is compared to the encoding framerate, the more pronounced and frequent the stutters become.
What Causes Dropped Frames?
Frame drops are caused by a render framerate to encoder framerate mismatch. For example, if you render at 100 fps, and the encoder is only configured to handle 60 fps, then it will drop those extra 40 frames every second because the encoder isn’t synced to the fps output. This is the source of dropped frames in most cases.
Another cause of dropped frames occurs if the opposite is true. If you are unable to maintain a consistent 60 fps in render performance for the majority of the time, then it will also lose frame synchronization. The resulting stuttering artifacts are on-screen longer than they should be, which feels more like traditional game lag.
There is one final cause of frame drops, which is packet loss. You could be rendering out just fine, and your encoder could be set to the right value, but you can still drop frames if the packets in the final step are lost. This issue is common for users of WIFI, as that protocol is notably vulnerable to interference. How you would fix this problem is to either boost your WIFI Signal strength or opt instead for a powerline adapter or ethernet connection.
You can test for Packet loss using the windows store version of “Speed Test by Ookla”. This page has a handy guide on how to see the information we’re testing for.
Why Frame Limiting Fixes Frame Drops in OBS
To fix frame drops in OBS when you are streaming on Twitch or any other platform for that matter, you want to match your render frame rate to that of your streaming framerate at a 1:1 ratio. So if you were to stream at 60 fps, and are able to render above 60 fps in-game, then you want to frame limit your game to 60 fps.
If you are unable to render a consistent 60 fps in-game or above, you’ll have to be more aggressive with the frame limiter, opting for a framerate of 30 fps. In this case, both the game and the encoder need to be set to 30 fps. I say 30 because OBS Studio in particular doesn’t do a very good job at encoding at odd fps values that are not multiples of 30.
I know this isn’t the solution you want to hear, especially to those of you who utilize nice 144hz-240hz monitors, but it is the only solution to fixing dropped frames.
How to Frame Limit a Game
In many cases, frame limiting can be done on a per-game basis within their in-game settings, but for a more robust solution, you can enable frame limiting system-wide within your graphics card settings. As there are simply too many games out there to really dive into and walk you through how to frame limit within them, I’m just going to cover how to frame limit a game within your GPU settings.
There are a few benefits to doing this outside of encoder performance, which I’ll explain after.
How to Frame Limit For AMD Card Users:
- Right click on your desktop
- Click on “AMD Radeon Software”
- Click on the Gear icon located in the top right of the interface
- Locate and Click on “Graphics” within the sub menu that appears within the settings window
- Scroll down until you see “Advanced” and Expand it
- Just under Advanced is a setting called “Frame Rate Target Control”. Enable it
- Bring the Slider to 60, or 30 if you are unable to maintain 60 fps in game while streaming.
- Be sure to match this value in your broadcasting program encoding settings – How to do it for OBS Studio for 60 fps
How to Frame Limit for NVIDIA Card Users:
- Right click on your desktop
- Click on “NVIDIA Control Panel”
- Under 3D settings in the left navigation bar, click on “Manage 3D Settings”
- Ensure the Global settings tab is selected
- Scroll down until you locate “Max Frame Rate”
- Toggle it on, and enter your target frame rate, 60 or 30 in this case.
- Click Apply
I do not have an NVIDIA GPU handy to show screenshots – Refer to this article if you need more visual guidance.
If you do not see the option in the settings following the steps above, then you may need to update your video card drivers.
Once Intel releases their Discrete GPU, I’ll also include a step-by-step process for them too
The Surprising Benefits of Frame Limiting
While you lose out on the maximum potential of your graphics card rendering prowess, there are benefits to using a frame limiter beyond fixing frame drops. For one, because your card isn’t devoting all of its resources to render like crazy, OBS will be more stable. This is because OBS does require some GPU resources to function to its full potential.
If your GPU was pegged at 100%, and nothing was left over for OBS studio, then the encoding performance would drastically be affected, which can result in a massive number of various artifacts, ranging from compression artifacts, color corruption, and more.
Another benefit comes to laptop users – frame limiting reduces the power draw of your laptop, which can dramatically extend the period that a battery charge lasts. This is particularly effective because a GPU is far more power efficient at a lower utilization percentage, so you get a lot more battery life out of it vs the extra 20-60 fps you would drive.
Yet another benefit comes in the case that your monitor itself is unable to properly display all that frame rate. Say your display has a maximum of 144 Hz. Well, if you are rendering CS: GO at 240 fps, then the refresh point will change from the bottom and shift around at random points on the screen, resulting in the screen tearing artifact being visible.
Normally, that tearing is always there, but it is usually locked at the very bottom of the screen so we don’t notice it. Rendering above your monitor’s refresh rate will make it noticeable.