go2rtc is a tiny streaming server that takes camera feeds (RTSP, USB, ONVIF) and re-publishes them as low-latency WebRTC to a browser — great for a home camera dashboard.
Why go2rtc
- Sub-second latency via WebRTC, with automatic fallback to MSE/HLS.
- One source, many viewers — it pulls each camera's RTSP once and fans it out, so you don't overload the camera with connections.
- Mixes IP cameras (RTSP) and USB webcams in one config.
Minimal config
# go2rtc.yaml
streams:
front_door: rtsp://user:pass@CAMERA_IP/h264Preview_01_main
garage: ffmpeg:device?video=/dev/video0
It serves a dashboard and API (default port 1984); embed the players in a small HTML viewer.
Gotcha: USB device sharing
A USB camera can be held by only one process at a time. If another app grabs /dev/video0, go2rtc can't — make go2rtc the single owner and let other consumers pull from it.
Bonus: feed a frame to a local vision model for "what's at the door?" alerts.
Related: Home Lab Fleet Architecture · Local Image Generation with ComfyUI