Repolode
AlexxIT

AlexxIT/go2rtc

A camera streaming server that converts and relays video and audio between dozens of camera, RTSP, WebRTC, HLS, and HomeKit formats.

Stars
14,466
Forks
1,422
Open issues
1,007
Last commit
5 days ago

What is it?

go2rtc is a single-binary streaming application for camera feeds. It accepts input from IP cameras and other sources, including RTSP, RTMP, ONVIF, WebRTC, HomeKit, MJPEG, and vendor-specific protocols from brands such as Tapo, Wyze, Xiaomi, and Tuya, then re-exposes those streams in formats that browsers, players, and smart home systems can use. It supports Windows, macOS, Linux, and FreeBSD, and has no runtime dependencies.

The project focuses on low latency: where the source codec is compatible with the client, streams pass through without transcoding. When conversion is needed, it can call FFmpeg, including hardware-accelerated transcoding. It also supports two-way audio for cameras that have a speaker, can publish streams to services such as YouTube and Telegram via RTMP, and includes a web UI with connection statistics and an HTTP API.

It is used as a component in projects like Home Assistant and Frigate, and can also run standalone via binary, Docker, or a Home Assistant add-on.

Key features

  • 01Accepts streams from RTSP, RTMP, ONVIF, WebRTC, HomeKit, MJPEG and many vendor-specific camera protocols.
  • 02Outputs streams as RTSP, WebRTC, HLS, MP4, MJPEG, HomeKit and more.
  • 03Passes compatible streams through without transcoding to keep latency low.
  • 04Supports two-way audio and playing audio files or live streams to cameras with speakers.
  • 05Publishes streams to services such as YouTube and Telegram via RTMP.
  • 06Provides a web UI and HTTP API with connection statistics.

Use cases

  • Viewing IP camera feeds in a browser with low latency.
  • Feeding camera streams into Home Assistant or Frigate for smart home and NVR use.
  • Converting vendor camera streams into standard RTSP or HLS for other software.
  • Adding two-way audio or playing alerts through a camera that has a speaker.

Quick start

  1. 1

    Download the binary for your OS from the latest release page

  2. 2

    Make the binary executable on Linux or macOS

    chmod +x go2rtc_xxx_xxx
  3. 3

    Open the web interface in your browser

  4. 4

    Add your camera streams to the go2rtc.yaml config

Things to know

  • Master builds are the latest but may be unstable.

Topics

FAQ

What is go2rtc?
A camera streaming server that converts and relays video and audio between dozens of camera, RTSP, WebRTC, HLS, and HomeKit formats. go2rtc is a single-binary streaming application for camera feeds. It accepts input from IP cameras and other sources, including RTSP, RTMP, ONVIF, WebRTC, HomeKit, MJPEG, and vendor-specific protocols from brands such as Tapo, Wyze, Xiaomi, and Tuya, then re-exposes those streams in formats that browsers, players, and smart home systems can use. It supports Windows, macOS, Linux, and FreeBSD, and has no runtime dependencies.
Is go2rtc free to use? What license does it have?
go2rtc is open source under the MIT license. Check the license terms before using it in commercial products.
Is go2rtc still maintained?
Actively maintained. The last commit to go2rtc was on Oct 19, 2026.
What can I use go2rtc for?
Viewing IP camera feeds in a browser with low latency. Feeding camera streams into Home Assistant or Frigate for smart home and NVR use. Converting vendor camera streams into standard RTSP or HLS for other software. Adding two-way audio or playing alerts through a camera that has a speaker.
How do I install go2rtc?
Download the binary for your OS from the latest release page Make the binary executable on Linux or macOS: chmod +x go2rtc_xxx_xxx Open the web interface in your browser Add your camera streams to the go2rtc.yaml config
Where can I get go2rtc?
The source code and installation instructions are on GitHub: https://github.com/AlexxIT/go2rtc

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects