Encoders
The encoder is a per-host setting and decides which codecs that host can offer. Which codec a session uses is covered in Codecs.
What you get by default
Section titled “What you get by default”With QUASAR_ENCODER unset, the agent detects the GPU vendor at startup and logs
the choice as encoder resolved:
| GPU | Default encoder |
|---|---|
| AMD, NVIDIA | Vulkan Video (validated) |
| Intel | VA-API |
| None | openh264 |
To change it, open Admin ▸ Fleet ▸ Hosts ▸ Settings. It applies once approved and the host is idle, without ending a running session. See Per-host settings.
For an environment-managed agent, set QUASAR_ENCODER to vulkan, va, nvenc
or openh264 in its environment.
An explicit value does not bypass a known codec compatibility restriction.
Vulkan
Section titled “Vulkan”The default. H.264, HEVC and AV1 all encode on this path. Three switches, all on by default, exist only to turn a codec off:
QUASAR_VULKAN_H264=1QUASAR_VULKAN_HEVC=1QUASAR_VULKAN_AV1=1Set one to 0 and that codec falls back to the vendor hardware encoder, if the
host has one. The same happens when the image lacks the Vulkan element. H.264 is
the floor and stays on Vulkan regardless, with an error logged.
With HEVC enabled, the compositor ring is pinned to two slots automatically, to avoid a tiling defect on affected NVIDIA hardware.
AV1 driver compatibility
Section titled “AV1 driver compatibility”NVIDIA GPUs require driver version 610 or newer. This is Quasar’s supported driver baseline. After updating the driver, recreate the agent container and check its reported driver and codecs in Fleet ▸ Hosts.
On Unraid, also confirm the package supplies the open kernel modules your GPU needs; see NVIDIA setup on Unraid.
Known AV1 restrictions can remove that codec from a host. Use HEVC or H.264 where the profile and client support it. Precise regression evidence and existing codec guards are in NVIDIA compatibility reference.
VA-API
Section titled “VA-API”Mature, with the most complete zero-copy support. Use it on Intel, or on AMD if
you hit a Vulkan problem. QUASAR_ZEROCOPY=1 enables an extra full zero-copy
variant available only here.
NVIDIA’s own encoder. Not the default because of a driver teardown fault Vulkan
avoids. Set QUASAR_ENCODER=nvenc only for a specific validated use. It is not the
fallback for the AV1 restriction above.
openh264
Section titled “openh264”Software encoding for machines with no GPU. It proves an install works; quality and throughput are poor and adaptive bitrate barely functions.
Zero-copy
Section titled “Zero-copy”Frames stay on the GPU from compositor to encoder. That’s built in, not a setting, and it’s why CPU usage stays low and why the encoder must point at the right GPU.
Picking a GPU on a multi-GPU host
Section titled “Picking a GPU on a multi-GPU host”QUASAR_RENDER_NODE selects the DRM render node. Use a /dev/dri/by-path/ path,
not /dev/dri/renderD128: numbered names can change between reboots, by-path names
follow the PCI address.
ls -l /dev/dri/by-path/For NVENC, QUASAR_CUDA_DEVICE also picks the CUDA device index (default 0).
Tuning knobs
Section titled “Tuning knobs”Rarely needed. The defaults come from measurement.
| Setting | Default | Effect |
|---|---|---|
QUASAR_GOP |
60 | Frames between keyframes, at a 60 fps reference. Lower recovers from loss faster and costs bitrate. |
QUASAR_SLICES |
8 | H.264 slices per frame. Needs Quasar’s patched Vulkan encoder. |
QUASAR_TARGET_USAGE |
6 | VA speed against quality: 1 slowest and best, 7 fastest. ABR moves this under load. |
QUASAR_QUEUE_BUFFERS |
3 | Encode queue depth. More absorbs jitter and adds latency. |
Checking what you got
Section titled “Checking what you got”Admin ▸ Fleet ▸ Hosts shows the encoder each GPU reported, which is what the
agent found, not what you configured. A host set to va reporting no encoder has a
problem: see Install and startup problems.
In Admin ▸ Sessions, the encoder time series above about 16 ms per frame at 60 fps means the encoder is your bottleneck.