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
- 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.
- 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.
- 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.
- Hide the preview. The preview is drawn on the same GPU. Some reports say disabling it removes a drop.
- Do not scale for nothing. Make the canvas and output size match what you stream so the GPU is not resizing every frame.
- 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):
| Test | FPS lost | Notes |
|---|---|---|
| Synthetic game at about 207 FPS, GPU-bound | 3.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 FPS | about 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 sound | Within 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.