Skip to content

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.

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.

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:

Terminal window
QUASAR_VULKAN_H264=1
QUASAR_VULKAN_HEVC=1
QUASAR_VULKAN_AV1=1

Set 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.

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.

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.

Software encoding for machines with no GPU. It proves an install works; quality and throughput are poor and adaptive bitrate barely functions.

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.

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.

Terminal window
ls -l /dev/dri/by-path/

For NVENC, QUASAR_CUDA_DEVICE also picks the CUDA device index (default 0).

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.

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.