What a hardware encoder is
Encoding video means compressing raw frames into a stream small enough to upload or store. A software encoder such as x264 does it on CPU cores. A hardware encoder does it on a fixed-function block of the graphics chip, a media engine that exists only for that job. NVIDIA calls its block NVENC, AMD calls its encoder AMF (the Advanced Media Framework that drives it), and Intel's is Quick Sync Video.
Why it matters for your game
- The encode itself runs on the media engine, not on the CPU cores the game uses, and not on the shader cores that draw the game.
- Frames can stay in video memory from capture to encoder, so nothing is copied across the PC's memory bus.
- The cost left is in the steps around it: capturing the frame, converting its colours to the format the encoder takes (usually NV12) and resizing. In BriseStream's measurements on an NVIDIA card, that conversion cost one to 1.6 points of FPS and the encoder itself close to nothing; the video processor used for it ran on the 3D engine, not on a video engine.
Codecs: H.264, HEVC and AV1
| Codec | What to know |
|---|---|
| H.264 (AVC) | Works everywhere and on almost every hardware encoder; the safe default and the one Twitch and Kick accept over RTMP |
| HEVC (H.265) | Better picture at the same bitrate on supported GPUs; many live platforms do not accept it over RTMP |
| AV1 | Best compression, but only recent GPUs encode it in hardware; platform support for live streaming is still limited |
BriseStream lets the recording and the stream use different codecs, defaults to H.264, and fails with a clear message rather than silently changing codec if your GPU or destination cannot do what you picked.
BriseStream's HEVC encoding has been checked on NVIDIA hardware only; AMD and Intel are untested, and AV1 hardware encoding has not been run on real hardware yet. These facts come from the project's own notes.
Which one do I have?
- NVIDIA GeForce GTX 10-series and later: NVENC. Newer generations improve the picture quality; AV1 encoding needs a recent generation.
- AMD Radeon: AMF. Quality and codec support depend on the generation.
- Intel integrated or Arc graphics: QuickSync.
- No hardware encoder (some old or very basic cards): a software encoder is the fallback and costs CPU.
A Windows program can reach all three through Media Foundation, the encoders that ship with the graphics driver; BriseStream does it this way so it bundles nothing and needs no vendor SDK.