If you have ever dug into OBS encoder settings and paused on a box labelled “Max B-frames,” you are not alone. It is one of those options that quietly shapes how good your stream looks at a given bitrate, yet almost no beginner guide explains it. B-frames are a compression trick, and getting the number right can add visible clarity to fast gameplay without costing you a single extra megabit of upload.
As an Amazon Associate we earn from qualifying purchases at no extra cost to you.
What a B-frame actually is
Modern video codecs like H.264 and HEVC do not send a full picture every frame. They send occasional complete frames (I-frames or keyframes) and then describe everything in between as differences. There are two kinds of “difference” frames. A P-frame predicts forward from the previous frame. A B-frame is bidirectional: it can reference both a past and a future frame, so it only has to store what genuinely changed and could not be predicted from either side.
Because a B-frame borrows detail from two directions, it is dramatically cheaper to encode. That saved data gets reinvested into the parts of the image that are hard to predict, such as particle effects, foliage, and fast camera pans. The net effect is a cleaner picture at the same bitrate.
Why the count matters
The “Max B-frames” value tells the encoder how many B-frames it may chain between reference frames. More is not automatically better. Each B-frame adds a little encoding latency and, past a point, diminishing returns. For live streaming you want the sweet spot that improves quality without adding lag or overloading the GPU.
Recommended settings
| Use case | Max B-frames | Notes |
|---|---|---|
| Live streaming (NVENC) | 2 | OBS default; best balance of quality and latency |
| Fast-motion shooters | 2-3 | 3 can help at 6000 kbps if GPU has headroom |
| Talking-head / IRL | 2 | Low motion barely benefits beyond 2 |
| Local recording (quality) | 3-4 | Latency does not matter, so push higher |
| Older GPUs / weak CPU | 0-1 | Reduce if you see encoding overload |
On the NVIDIA NVENC encoder, the default of 2 is genuinely well chosen and most streamers should leave it there. If you use the x264 (CPU) encoder, the “bframes” value inside your preset behaves similarly; the medium and slower presets already enable sensible B-frame counts.
When to change it
Lower the value to 0 or 1 only if you are chasing the absolute lowest glass-to-glass latency, for example in a same-room competitive setup, or if a very old encoder is struggling. Raise it toward 3 for recordings where you have bitrate to spare and want maximum retained detail for later editing.
B-frames on x264 versus NVENC
The B-frame control behaves slightly differently depending on your encoder. On NVENC, the “Max B-frames” box is explicit and the default of 2 is tuned by NVIDIA for live use. On x264, B-frames are governed by your chosen preset and can also be forced through the custom “x264 Options” field using a parameter like bframes=2. Faster x264 presets such as veryfast use fewer B-frames to save CPU, while medium and slower presets enable more for better compression.
There is also an interaction with keyframe interval. Because keyframes reset the prediction chain, an extremely short keyframe interval limits how much B-frames can help. Streaming platforms typically want a 2-second keyframe interval, which leaves plenty of room for a couple of B-frames to work between reference frames. If you ever hand-tune both, keep the keyframe interval at 2 seconds and the B-frame count around 2, and you will not fight the encoder.
Frequently asked questions
Do B-frames increase stream latency?
Slightly. Each additional B-frame adds a few milliseconds of buffering because the encoder must look ahead. At the recommended count of 2 the added delay is on the order of tens of milliseconds and is invisible for the vast majority of streams. Only same-room, low-latency competitive setups need to worry about it.
Will more B-frames hurt viewers on weak connections?
No. B-frames change how the picture is compressed, not how much total data you send. Your bitrate ceiling is still the bitrate you set, so viewer bandwidth needs are unchanged. If anything, better compression means the same bitrate looks cleaner on their end.
Bottom line
B-frames are free quality. They let the encoder spend your bitrate more wisely by describing in-between frames from two directions at once. For nearly everyone streaming with NVENC, leaving Max B-frames at 2 is correct; bump it to 3-4 only for local recordings, and drop it toward 0 only if you are fighting latency or an ancient encoder. It is a one-time setting you can configure and forget.

