Browse by type
<img src="https://github.com/TzuHuanTai/RaspberryPi-WebRTC/raw/v2.0.0/doc/pi_5_latency_demo.gif" alt="Pi 4b latency demo">
Turn Raspberry Pi or NVIDIA Jetson into a low-latency ~200ms WebRTC streaming platform.
<a href="https://chromium.googlesource.com/external/webrtc/+/branch-heads/7680"><img src="https://img.shields.io/badge/libwebrtc-m146.7680-red.svg" alt="WebRTC Version"></a>
<img src="https://img.shields.io/github/downloads/TzuHuanTai/RaspberryPi_WebRTC/total.svg?color=yellow" alt="Download">
<img src="https://img.shields.io/badge/C%2B%2B-20-brightgreen?logo=cplusplus">
<img src="https://img.shields.io/github/v/release/TzuHuanTai/RaspberryPi_WebRTC?color=blue" alt="Release">
<a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache_2.0-purple.svg" alt="License Apache"></a>
MQTT * picamera.js * picamera-react-native * picamera-web * picamera-app - Android
WHEP * Home Assistant WebRTC Camera * eyevinn/webrtc-player
WebSocket * picamera.js - SFU signaling & broadcast

Check out the tutorial video or follow these steps.
Use Raspberry Pi Imager to flash Lite OS to SD card.
sudo apt update
sudo apt install libmosquitto1 pulseaudio libavformat61 libswscale8 libyaml-cpp0.8
Get the latest release binary .
wget https://github.com/TzuHuanTai/RaspberryPi-WebRTC/releases/latest/download/pi-webrtc_raspios-trixie-arm64.tar.gz
tar -xzf pi-webrtc_raspios-trixie-arm64.tar.gz
Use HiveMQ, EMQX, or a self-hosted broker.
[!TIP] MQTT lets your Pi camera and client exchange WebRTC connection info. WHEP doesn’t need a broker but requires a public hostname.
UID.bash
./pi-webrtc \
--camera=libcamera:0 \
--fps=30 \
--width=1280 \
--height=960 \
--use-mqtt \
--mqtt-host=your.mqtt.cloud \
--mqtt-port=8883 \
--mqtt-username=hakunamatata \
--mqtt-password=Wonderful \
--uid=your-custom-uid \
--no-audio \
--hw-accel # Only Pi Zero 2W, 3B, 4B support hw encoding[!IMPORTANT] Remove
--hw-accelfor Pi 5 or others without hardware encoder.
$ claude mcp add RaspberryPi-WebRTC \
-- python -m otcore.mcp_server <graph>