Stream quality
Diagnose before you tune
Section titled “Diagnose before you tune”Stutter can come from the network, the encoder or the client, and each needs a
different fix. While it’s happening, take a diagnostic bundle from
Admin ▸ Sessions for a verdict (Diagnostics).
Keep the browser tab visible; a hidden tab gives indeterminate_client_hidden.
Reading the verdict
Section titled “Reading the verdict”likely_network_congestion
Section titled “likely_network_congestion”Loss and round trip time rose together with a bitrate drop.
- Use wired ethernet on both ends. This is usually the biggest win.
- Check the UDP send buffer on the host.
- Drop to a lower quality tier.
- Check adaptive bitrate is on, in
smoothmode. - Look for other traffic on the link.
likely_encoder_saturation
Section titled “likely_encoder_saturation”Encode time was 16 ms or more per frame. The GPU can’t keep up with the tier.
- Drop the tier. Steady 1080p60 beats unsteady 1440p120.
- Check you’re not on software encoding (Encoders).
- On a multi-GPU host, check
QUASAR_RENDER_NODE. - Check nothing else is using the GPU.
- Try the Vulkan encoder if the host supports it.
likely_client_presentation_limit
Section titled “likely_client_presentation_limit”Encode and network were clean; the client presented frames unevenly.
- Close other tabs and applications.
- Check the client hardware-decodes the codec.
- Match the display refresh rate to the stream (60 fps on 75 Hz judders).
- On a Mac on WiFi, AirDrop and Handoff cause latency spikes. Check
ifconfig awdl0.
nominal
Section titled “nominal”No timing or transport fault found. This doesn’t rule out corrupted pixels: compare codecs and check driver compatibility.
Reading the numbers yourself
Section titled “Reading the numbers yourself”All in the session detail.
| Signal | Threshold |
|---|---|
| Encode time, p95 | 16 ms or more is saturation |
| Presentation interval variation (also in the in-session overlay) | 18 ms or more is visible stutter |
| Round trip time, p95 | Above 50 ms contributes to congestion |
| Packet loss rise | Above 5 packets in a window contributes |
| Host frame rate, p10 | Below 50 means the host isn’t keeping up |
Host frame rate and encode time describe what was produced; presentation interval variation describes what the user saw.
Smoothness beats the average
Section titled “Smoothness beats the average”Adaptive bitrate defaults to smooth, which favours steady frames over peak
bitrate. See Latency and smoothness.
Bitrate keeps sawtoothing
Section titled “Bitrate keeps sawtoothing”Compare the ABR setpoint with loss and round trip time in the session detail. Oscillation on a clean link usually means the socket buffer sysctl is missing. NVENC overshooting its target on busy scenes is normal.
Everything is bad and nothing is obviously wrong
Section titled “Everything is bad and nothing is obviously wrong”Check Admin ▸ Fleet ▸ Hosts for the encoder each GPU actually reported. A host that fell back to software encoding looks poor at every tier.
Comparing before and after
Section titled “Comparing before and after”Change one thing at a time, keep everything else the same, and take a bundle for each run.