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.
Ships as a single binary with no runtime dependencies, FFmpeg is only needed if codec conversion between formats is required.
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.
← alexxit on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.