Why OBS drops your FPS in a game, and what to do about it

OBS drops your game's FPS because capturing, converting and encoding the picture use the same GPU, and sometimes the same CPU, that the game needs; on a GPU already at 100 %, every extra job costs frames. The fixes that help most are encoding on your graphics card's hardware encoder instead of the CPU, capping the game's frame rate, choosing the right capture method and hiding the preview. No recorder is free: even in BriseStream's own measurements the cost is not zero.

Last updated

Why capturing costs frames

Recording or streaming a game is extra work on the same machine. The recorder must receive each frame from the game, convert its colours and size to what the encoder wants, encode it and send or write it. On a GPU that is already fully used by the game, that work is taken from the game's share. On a CPU-heavy game, software encoding competes with the game's own threads.

There is also a presentation effect. Windows can show a full-screen game directly (independent flip). In BriseStream's measurements, capturing a game's window with Windows' own capture made the game leave that direct mode and be composed by the desktop instead, which accounts for part of the cost and is not specific to one recorder.

The fixes that usually help, in order

  1. Encode on the graphics card, not the CPU. In OBS choose the hardware encoder (NVENC on NVIDIA, AMF on AMD, QuickSync on Intel) instead of x264. The CPU is then free for the game. See hardware encoding explained.
  2. Cap the game's frame rate. A game running uncapped at several times your stream's frame rate leaves little GPU or CPU time for anything else. A cap a little above what your monitor can show gives the recorder room. Several OBS forum threads report this as the fix.
  3. Try the other capture method. Game capture, window capture and display capture behave differently on different games; users report that switching, or turning on "Limit capture framerate", solves some cases and changes nothing in others. Test one change at a time.
  4. Hide the preview. The preview is drawn on the same GPU. Some reports say disabling it removes a drop.
  5. Do not scale for nothing. Make the canvas and output size match what you stream so the GPU is not resizing every frame.
  6. Lower the game's own GPU load (settings, resolution scaling) if the GPU is pinned at 100 %. A recorder needs headroom.

These are the common remedies reported on the OBS forum and in guides, not guarantees. Results differ by game, machine and OBS version.

What BriseStream does differently, and what it does not fix

BriseStream is built around the causes above: it encodes on the hardware encoder, captures through Windows without injecting into the game, keeps frames on the GPU from capture to encoder, and does no GPU work when you are neither recording nor streaming. It does not remove the cost on a saturated GPU. Measured on one machine (GTX 1050, 1080p):

FPS lost while recording with BriseStream, ADR 0012
TestFPS lostNotes
Synthetic game at about 207 FPS, GPU-bound3.7 to 4.9 %OBS 29.1.3 lost 8.4 to 8.6 % in the same test
Counter-Strike 2 with bots, 220 to 290 FPSabout 17 %Game Bar set to 60 lost 7.5 % but wrote a smaller, 30-picture-a-second file
Counter-Strike 2 played by a person, native 1024x768, with soundWithin noise (mean +2.0 %, interval -2.1 to +6.3 %)A loss of about 2 % is not excluded; the 1 % target is not shown to be met

That is why the page says "lower" and not "none". The numbers and their limits are in Performance.

Questions and answers

Why does OBS lower my FPS even with a powerful PC?
Because a game that uses the GPU fully leaves no headroom. Capture, colour conversion and encoding all take GPU time, and uncapped games can also starve the CPU. A hardware encoder and a frame cap are the usual fixes.
Is NVENC better than x264 for game FPS?
Usually yes for the game's frame rate, because NVENC encodes on a dedicated engine on the GPU and leaves the CPU free, while x264 uses CPU cores the game may need. Picture quality at a given bitrate can differ, and newer NVENC generations are better.
Does BriseStream cost zero FPS?
No. In our measurements it costs from within noise to about 17 % depending on the game and the load; the target of 1 % is not met in every setup, and we say so.
Does disabling the OBS preview help?
It can: the preview is drawn on the GPU. Some users report a drop that disappears without it, but others in the same threads found the cause elsewhere.

Sources

  1. OBS forum: "OBS Studio causing FPS drops"
  2. ADR 0012: what recording costs a game, measured against OBS
  3. ADR 0003: Windows capture and hardware encoders
  4. ADR 0029: frames are never the margin