Ok calm down!
This window will pop-up, keep streaming and give it a while to collect data then check the lines marked here with colored outlines:
If any of those numbers keeps growing, you're losing frames! (go find them!)
This is a very rough approximation of how frames work:
Check the following sections for a more in-depth explanation and what you can do to remedy the issue:
(RENDERING) I have rendering lag
Your graphics card is overloaded!
- If you are running a demanding game, lower the settings so your graphics card has time to compose and render your OBS frames.
- If you think the game is not demanding, check the framerate! Keeping the framerate very high or unlocked can cause a lot of load on your graphics card even if the single frames are quick to render.
- Are you capturing your webcam to show somewhere? Reduce the resolution, you don't need 4K for a tiny box on a 1080p stream! (and your webcam will run smoother too)
- If all else fails, disabling the OBS preview (right click on screen -> untick "Enable preview") can give you a bit more performance
Usually I limit games to at most 100 FPS when playing on stream, but your mileage may vary depending on game, personal preference and hardware.
For a more in-depth troubleshooting procedure, check this article: Troubleshooting "Lag" in OBS Studio
(ENCODING) My encoder is overloaded!
Your encoder is not managing to render frames in time! Depending on your target framerate your encoder has only a bunch of milliseconds (16ms at 60fps) to render the frame and send it over.
You can find encoder setting under File -> Settings -> Output.
Keep note of the highlighted fields.
If you are recording using different encoding settings (ie. Video encoder not set to "(Use stream encoder)"), you are encoding TWICE! Consider not doing that if it's ruining your performance!
If you are using hardware encoding (NVENC, AMD HW) and play demanding games often, consider switching to a CPU encoder (x264).
If that isn't enough, consider dropping the preset to a faster one (e.g. from veryfast to superfast, in x264).
If that also isn't enough (or if the quality drop is too much to be acceptable), consider lowering your output (scaled) resolution and/or framerate.
The nitty gritty
Encoding tuning is a science of its own but in general a slower preset lets you have better quality with the same bitrate at the cost of slower performance. You can try to balance using a faster preset with higher bitrate, but services like Twitch have already obscenely low maximum bitrates they will accept (and the only reason to not cap that is if you have slow internet, more on that below)
The OBS official wiki has more in-depth info on everything you can do to ease up encoder issues: General Performance And Encoding Issues
(NETWORK) My connection is not stable!
Your ISP sucks!
This is the roughest one, here's a couple things you can do to help address the issue, but they will impact the quality of your stream:
- If you're consistently losing frames, lower the encoder's bitrate (check above how to access encoder settings). This should roughly match your upload speed but keep some leeway for other kinds of internet usage (especially if you play multiplayer games)
- Lower framerate/resolution (this works in tandem with lower bitrate to mitigate blocky/jpeggy video)
If you think your upload should be higher than what you're managing, check TwitchTest (by a OBS dev and TeamLiquid staff) for checking which Twitch server is best for you and how much bitrate you can push to each.
Check this page from the OBS Wiki on some other things you can do, though most of it won't actually do much or anything: Dropped Frames And General Connection Issues
Thanks AJ/Tyron for some tips!