Where the seconds go between your camera and their screen
Chat replies to something you did eight seconds ago. That gap is built from six separate delays, and you own about two of them.
You wave. Chat waves back eight seconds later. People blame the internet.
The internet is a small part of it.
The stack
| Stage | Rough cost | Yours? |
|---|---|---|
| Camera sensor to output | 1 to 2 frames | No |
| Capture into the encoder | 1 to 3 frames | Some |
| Encoding, including lookahead and B-frames | 2 to 10 frames | Yes |
| Network and protocol buffer | 0.1 to 3 s | Yes |
| Ingest, transcode and packaging | 2 to 6 s | No |
| Player buffer | 2 to 10 s | No |
Add it up. The two stages you cannot touch are the two biggest.
Why packaging costs so much
Platforms deliver over HTTP in segments. A player cannot start a segment that is still being written. So it waits for the whole thing, then holds a couple more in reserve against a stall.
Six-second segments with three buffered is eighteen seconds before anything else happens. Low-latency modes cut the segment into parts and ship each part as it finishes. That is where the drop from fifteen seconds to four comes from. It is not a faster network.
Bonding adds latency on purpose. An SRT buffer of 2000 ms is two seconds you agreed to spend so a dead modem does not end the stream.
What you can actually cut
- B-frames. They reorder frames, so the encoder holds some back. Set them to zero and you lose a little efficiency and a few frames of delay.
- Lookahead and psycho-visual tuning. Both buy quality with frames of delay.
- Keyframe interval. Two seconds is the common requirement. Longer intervals make the player wait longer to start.
- Your protocol buffer. Only if your links are stable. On a bonded uplink this is the wrong dial to turn.
The part worth accepting
Low latency and resilience pull against each other. Every buffer you remove is a buffer that was absorbing a problem.
Chat delay is annoying. A stream that drops out mid-sentence is worse. Pick the failure you would rather have, then set the buffers to match.
Sources
- SRT protocol, latency and buffer guidance
- Apple, HTTP Live Streaming documentation
- OBS Studio, application overview
The Rig Wire reports on streaming technology from public documentation, source repositories and vendor releases. We did not bench-test what is described here. When we have tested something, we say so.