pi-webrtc

Video & Audio

pi-webrtc reads video from a camera or a stream, encodes it, and sends it over WebRTC. This section shows which video sources you can use, how encoding works, and how to add audio.

Pages

  • CSI cameras: ribbon cameras on a Raspberry Pi (libcamera) or a Jetson (libargus).
  • USB cameras: any UVC camera, through V4L2.
  • RTSP cameras: IP cameras, MediaMTX, GStreamer and DeepStream.
  • Virtual cameras: process frames with Python or AI first, then stream them.
  • Encoding: hardware and software encoding.
  • Two-way audio: a microphone and a speaker on the device.

Video sources

--camera selects the video source:

Source--cameraRaspberry PiJetson
CSI cameralibcamera:<id>✅❌
CSI cameralibargus:<id>❌✅
USB camera or other V4L2 devicev4l2:<id>✅✅
RTSP streamrtsp://...✅✅

If you ask for a source that the device does not have, pi-webrtc stops with an error. For example, libcamera:0 does not work on a Jetson.

Edit on GitHub

On this page