Adaptive bitrate
Adaptive bitrate (ABR) watches round trip time, packet loss and the congestion
controller’s bandwidth estimate, and moves the encoder’s target bitrate to match.
It is on by default in smooth mode. Most deployments should leave it there.
The two modes
Section titled “The two modes”Change it under Admin ▸ Fleet ▸ Hosts ▸ Settings. For a source checkout or an
older Compose-managed agent, QUASAR_ABR_MODE in deploy/.env also sets the host
default. Current managed installs use the host settings page.
| Mode | Behaviour | Use it when |
|---|---|---|
smooth (default) |
Steps down gently: when the encoder is saturated, a non-emergency cut is at most 12.5% per step, 7 seconds apart. Confirmed congestion still triggers a fast drop. | Almost always. |
protective |
The older governor. One hard step down on trouble, gradual ramp back up. | smooth behaves oddly on your hardware, especially the encoder speed ladder. |
off |
Fixed bitrate at the tier’s value. The congestion controller stays attached for telemetry only. | A dedicated wired LAN. Not WiFi. |
Environment override
Section titled “Environment override”For an environment-managed agent, QUASAR_ABR_MODE=off disables ABR. The older
alias QUASAR_ABR=0 is also accepted. Prefer the host settings page for a managed
install.
The floor
Section titled “The floor”ABR never goes below a floor: by default 30% of the tier’s bitrate, and at least
500 kbps. Set it explicitly with QUASAR_ABR_FLOOR_KBPS, or change the ratio with
QUASAR_ABR_FLOOR_RATIO.
The encoder speed ladder
Section titled “The encoder speed ladder”In smooth mode, sustained encoder saturation raises the encoder’s speed setting
instead of only cutting bitrate. It unwinds after two healthy windows. Disable it
with QUASAR_ABR_LADDER=0.
Resolution and frame-rate rungs are opt-in (default off):
QUASAR_ABR_LADDER_RESOLUTIONmoves through the session’s supported external-size ladder. Support depends on the codec and image; Vulkan HEVC can’t resize live.QUASAR_ABR_LADDER_FPShalves 120 fps to 60 and restores it. A 60 fps launch has no lower rung.
Both need smooth mode and apply to the next session.
Hardware encoders only
Section titled “Hardware encoders only”ABR is validated on hardware encoders. With openh264 it barely works, because the software encoder can’t saturate 1080p at 8 Mbps, so no congestion is ever seen. On software encoding, ABR is not why your stream is poor.
NVENC sometimes overshoots the target on busy scenes. That’s known behaviour, not a misconfiguration.
Watching it work
Section titled “Watching it work”Admin ▸ Sessions, session detail, plots the ABR setpoint against the congestion controller’s estimate. A rapidly sawtoothing setpoint means something is fighting it: check loss and round trip time in the same window first.
Fine tuning
Section titled “Fine tuning”About fifteen more settings control the governor’s hysteresis (smoothing, deadband, step sizes, dwell times, cliff guards). The defaults are the tested behaviour. Don’t change them without a measurement to compare against (Diagnostics). The full list is in Environment variables.