go2rtc
Ultimate camera streaming application
go2rtc is a camera streaming hub that connects nearly any video source to any viewer with minimal delay, a single small program that runs on Windows, Mac, Linux, and Raspberry Pi with no complex setup.
go2rtc is a camera streaming tool that lets you connect almost any video source to almost any viewer, without delay. It runs as a single small program on Windows, macOS, Linux, FreeBSD, and ARM devices such as a Raspberry Pi, so there is nothing complicated to install or maintain.
The way it works: you give it one or more camera sources, and it makes those streams available in whatever format a viewer requests. It supports a wide range of input protocols (RTSP, RTMP, HTTP streams, WebRTC, and more) and can output in formats like HLS for web players, WebRTC for browser-based viewing, and others. If the camera codec does not match what a viewer can handle, it will use FFmpeg to convert on the fly, but only when needed, which keeps latency low.
A few notable capabilities stand out: two-way audio (so you can speak through cameras that support it), the ability to push streams out to services like YouTube or Telegram, mixing tracks from different camera sources into one combined stream, and a built-in web interface at localhost:1984 for managing everything.
It integrates particularly well with Home Assistant, the home automation platform. There is a dedicated add-on for Home Assistant users, and the project is listed as a dependency of Home Assistant own camera streaming features.
The project is written in Go and has no external dependencies at runtime. It is available as a standalone binary for all major platforms, with versions for 32-bit and 64-bit Windows, Intel and ARM Mac, standard and ARM Linux, and FreeBSD. The full README is longer than what was shown.
Where it fits
- Connect IP cameras or RTSP streams to a browser-based viewer over WebRTC with no plugin and no server-side transcoding needed.
- Integrate camera streams into Home Assistant as the streaming backend, enabling low-latency viewing in the home automation dashboard.
- Push a local camera feed to YouTube Live or Telegram by adding an outbound stream destination in the go2rtc config.