Raspberry Ninja documentation

August 3, 2026 ยท View on GitHub

Raspberry Ninja publishes, receives, records, and relays VDO.Ninja streams from Linux systems and single-board computers. Start with the guide that matches the job you are trying to do.

Start here

GoalGuide
Install and publish a first test streamQuick start
Configure a Pi Zero 2 W as an unattended sender or HDMI receiverPi Zero 2 W unattended WebRTC
Run and monitor publishers, receivers, and test benchesOperations guide
Record one stream, a room, or HLS segmentsRecording guide
Diagnose installation, media, display, network, or resource failuresTroubleshooting
Understand board, OS, camera-stack, and GStreamer differencesPlatform compatibility

Platform installation

Documentation conventions

  • Commands are run from the repository directory unless a guide says otherwise.
  • STREAM_ID, ROOM_NAME, device paths, usernames, and passwords are placeholders.
  • --password false is useful for an isolated test, but disables VDO.Ninja's additional application-level encryption. Use the same strong password at both ends for deployment.
  • A GStreamer element being installed does not prove that its driver and memory path work. Probe the actual device and keep a software fallback.
  • Hardware advice is a starting point. Confirm the actual board, OS, kernel, GStreamer version, plugins, camera stack, and device modes before tuning.

Engineering records

Files under dev_notes document dated investigations and test results. They are useful for reproducing a finding, but they are not current operator instructions. Use the guides above for deployment commands.

When reporting a bug, include the environment bundle from Troubleshooting, the complete command, and the first GStreamer error before any cascade of follow-on errors.