Overview
Encoding video in software adds latency and consumes CPU cycles a robot often needs for perception, control, and other realtime work. To avoid this, the LiveKit Rust and Python SDKs use a platform's dedicated hardware video encoder whenever one is available, which lowers encoding latency and frees the CPU.
Encoder selection is automatic: the SDK uses a hardware encoder when the platform provides one for the negotiated codec, and falls back to software encoding otherwise. No configuration is required.
Supported encoders
The following platforms have hardware encoder support:
| Platform | Encoder API | Codecs |
|---|---|---|
| AMD CPUs and GPUs | VAAPI | H.264 |
| Intel CPUs | VAAPI | H.264 |
| Nvidia discrete GPUs | NVENC | H.264, H.265, AV1 |
| Nvidia Jetson | Jetson MMAPI | H.264, H.265, AV1 |
| Apple Silicon | VideoToolbox | H.264, H.265 |
Some codecs depend on the specific hardware:
- NVENC AV1 requires an Nvidia GPU with hardware AV1 encoding support.
- Jetson AV1 requires Orin-class hardware.