Video encoding, bitrates and resolution
Pick settings that look good and do not melt your bandwidth or CPU.
Bad streaming settings cause buffering, blur, or a maxed-out server. These are the dials that matter.
Resolution and bitrate pairing
| Resolution | Motion content | Static/talk content |
|---|---|---|
| 1080p | 4500–6000 kbps | 3000–4500 kbps |
| 720p | 2500–4000 kbps | 1500–2500 kbps |
| 480p | 1000–1500 kbps | 800–1200 kbps |
| 360p | 600–800 kbps | 400–600 kbps |
Faster motion needs more bitrate to avoid smearing. A talking-head stream looks fine at far less than a fast-paced game.
Codec
H.264 (AVC) — universal compatibility. The safe default.
H.265 (HEVC) — better quality per bit, but patchier browser support and heavier encode.
AV1 — best compression, still expensive to encode and unevenly supported. Good for VOD, less so for live ingest.
Keyframe interval
Set it to about 2 seconds (or 2× your frame rate). HLS segments are cut on keyframes; a long interval delays segment creation and hurts seek/preview.
The upload constraint
Your encoder's upload bandwidth caps your bitrate. Rule of thumb: never exceed half your measured upload speed, so you have headroom for retries and other traffic. A 10 Mbit/s upload comfortably supports one 4 Mbps stream.
CPU cost of transcoding
Encoding is CPU-hungry; hardware acceleration (NVENC/QuickSync/VA-API) makes a large difference. If you transcode to several renditions on a VPS, do the arithmetic first: each rendition is roughly another encode. On CPU-only servers, one or two renditions is often the practical ceiling.
VOD encoding
For on-demand files you can afford slower, better encodes (two-pass, HEVC/AV1) because it is not real-time. See Video on demand.
Related reading