go2rtc is a lightweight, zero-dependency streaming server designed to unify and convert video streams across a wide range of protocols and devices, particularly in smart home and surveillance environments. Written in Go, it provides real-time streaming capabilities with extremely low latency by supporting protocols such as RTSP, WebRTC, RTMP, HTTP, and HomeKit, while also enabling seamless transcoding using FFmpeg when needed. The application can ingest streams from IP cameras, USB devices, or cloud-based sources and redistribute them to multiple clients or platforms, including browsers and smart home systems like Home Assistant. Its architecture emphasizes flexibility, allowing users to mix multiple input sources, negotiate codecs dynamically, and even enable two-way audio communication with supported devices. go2rtc also includes features for publishing streams to external platforms like YouTube or Telegram, making it useful beyond surveillance scenarios.
Features
- Support for RTSP, WebRTC, RTMP, HTTP, and HomeKit protocols
- Ultra-low latency streaming with real-time performance
- On-the-fly transcoding using FFmpeg
- Multi-source stream mixing and codec negotiation
- Integration with smart home platforms and APIs
- Two-way audio support for compatible devices