go2rtc
Ultimate camera streaming application
Go2RTC: a small camera streamer for every OS
Go2RTC is a zero dependency camera streaming app that takes input in dozens of formats and pushes output anywhere, including straight to YouTube or Telegram.
A single binary for streaming
The pitch for go2rtc is short: a small camera streaming application that runs everywhere. The README calls it zero dependency and notes zero delay for many supported protocols. On the input side it accepts dozens of formats and protocols, and on the output side it covers all popular formats. That combination of breadth and a single small binary is what makes the project stand out in a space full of heavyweight streaming stacks.
What it can do with streams
The feature list gets specific. The app supports streaming ingest in popular formats, publishing sources out to services like YouTube and Telegram, and transcoding on the fly through FFmpeg when the pipeline needs it. Two way audio is supported, tracks from different sources can be mixed, and the app will auto match the formats a client supports. There are also streaming stats for active connections, which gives operators a window into what is actually running.
Where the ideas came from
The README credits its influences rather than hiding them. It names a series of streaming projects, the WebRTC Go library and the pion team, the rtsp simple server idea, the GStreamer framework pipeline idea, the MediaSoup framework routing idea, and the HomeKit Accessory Protocol. Crediting the ideas that shaped the design is a small thing, but it explains the architecture better than any diagram would.
Getting it running
Setup is described as download and go. Users grab a binary, or use Docker, or a Home Assistant add on, then open the web interface at a local address and add streams to the config. A binary table lists builds for Windows, Linux, and ARM platforms, with the app compiled with a recent Go for speed and security. For a tool that lives on the edge of a home network, that lightweight install path is the point.
Use cases it names
The README keeps returning to the camera use case. It can stream input from dozens of formats and protocols, output in all popular formats, and publish sources to streaming services like YouTube and Telegram. Two way audio and on the fly transcoding via FFmpeg are part of the same story. Read as a whole, the tool is meant to sit between cameras and everywhere else, with as little glue as possible.
Community notes