Skip to content

Supported hardware

VideoNode runs on any Linux host with a GPU and a V4L2 capture device. Hardware acceleration is currently tuned to Rockchip rk35xx; everywhere else it uses portable software backends. This page lists what each pipeline stage needs and what is validated today.

Support matrix

StageHardware-accelerated (Rockchip rk35xx today)Portable software (any Linux GPU host)
MJPEG decodeMPP (librockchip-mpp)TurboJPEG
Color conversion (CSC)RGA (librga)libplacebo (Vulkan/GL)
H.264 / H.265 encodeh264_rkmpp / hevc_rkmpplibx264 / libx265, or *_vaapi
GPU compositingMali via the panthor DRM render nodeany DRM render node libplacebo can open

The accelerated column is what the packaged build targets today. The software column runs anywhere VideoNode is built from source against a working GPU.

Validated platform

  • Board: any Rockchip RK3588 board. The reference and recommended board is the FriendlyElec NanoPC-T6 (including the T6 LTS), which the encoder paths are tuned against. Other RK35xx SoCs likely work but are not validated.
  • OS: Debian 13 (trixie) or newer. The packaged native binaries link trixie-era shared libraries, so apt refuses to install on bookworm or older.
  • Architecture: the APT package is arm64 only. Other architectures require building from source.

Minimum requirements

  • Linux with a DRM render node (/dev/dri/renderD*). The composer needs a GPU that libplacebo or RGA can drive.
  • A V4L2 capture device (/dev/video*) for live capture: USB UVC cameras, MIPI-CSI cameras, or HDMI capture cards. Verify with v4l2-ctl --list-devices. A test-mode source needs no device, so the pipeline can run hardware-free for dev or CI.
  • An ffmpeg on PATH with a working H.264 or H.265 encoder. Run videonode validate-encoders to confirm; see Encoders for the precedence rules.

LED status indicators

VideoNode can drive board status LEDs over sysfs when led_control_enabled = true (see config.toml reference). With the gate off, the LED routes are not registered and the controller is a no-op.

CapabilityBoards with a built-in driverLED types exposed
sysfs LED controlFriendlyElec NanoPC-T6user, system
sysfs LED controlOrange Piblue, green
sysfs LED controlRaspberry Piact

The board is detected from /proc/device-tree/model. Any other board falls back to the no-op controller, so the API accepts requests but no LED changes.

When a supported board is present, the API exposes:

  • POST /api/leds: set a LED's type, enabled state, and an optional pattern.
  • GET /api/leds/capabilities: list the LED types and patterns this board supports.

The supported patterns are solid, blink, and heartbeat.

To install on the validated platform, see Installing VideoNode.