Integration Guide

go2rtc — RTSP Setup & SmartRTSP Integration

Set up go2rtc as a universal RTSP media server for your IP cameras, and view streams on iPhone and Mac with SmartRTSP.

What is go2rtc?

go2rtc is a free, open-source media server created by AlexxIT. It acts as a universal streaming proxy and server — it can take virtually any IP camera stream as input (RTSP, RTMP, HTTP, ONVIF, FFmpeg, Homekit) and re-broadcast it in multiple output formats including RTSP, WebRTC, HLS, MSE, and HomeKit.

go2rtc has gained rapid popularity in the home automation community as the media backend for Home Assistant and Frigate NVR. It solves a real problem: most IP cameras only support one simultaneous RTSP connection, but many apps (Frigate, Home Assistant dashboards, SmartRTSP) all want to connect at once. go2rtc connects to the camera once and re-broadcasts to unlimited clients.

Why Use go2rtc with IP Cameras?

📡 Single Connection Fan-Out

Most cameras allow only 1–2 simultaneous RTSP clients. go2rtc connects once and serves unlimited viewers — Frigate, Home Assistant, SmartRTSP, and more.

🌐 Browser-Ready Streams

RTSP doesn't work in browsers. go2rtc converts your RTSP camera to WebRTC or HLS so it streams directly in any browser with zero plugins.

🏠 Home Assistant Built-In

go2rtc ships as a built-in add-on in Home Assistant OS and Supervised. Your cameras' streams are automatically available via WebRTC on dashboards.

🍎 HomeKit Bridge

go2rtc can expose any RTSP camera as a HomeKit camera — no vendor app needed. Works with Apple Home on iPhone, iPad, Mac, and Apple TV.

go2rtc RTSP URL Format

go2rtc listens for RTSP client connections on port 8554 by default. Each stream defined in your config.yaml gets its own RTSP endpoint:

rtsp://[go2rtc-host-ip]:8554/[stream-name]

Examples:

rtsp://192.168.1.50:8554/frontdoor rtsp://192.168.1.50:8554/backyard rtsp://homeassistant.local:8554/reolink_main

SmartRTSP tip: Enter any of these URLs directly in SmartRTSP on your iPhone — tap +Manual URL → paste the go2rtc RTSP URL → Connect.

Installing go2rtc

Option 1: Home Assistant Add-on (Recommended)

If you use Home Assistant, go2rtc is available as an official add-on:

  1. In Home Assistant, go to Settings → Add-ons → Add-on Store
  2. Search for go2rtc and install
  3. Start the add-on and open the Web UI
  4. Edit config.yaml to add your camera streams

Option 2: Docker

docker run -d \ --name go2rtc \ --network host \ -v /path/to/config:/config \ alexxit/go2rtc

Option 3: Direct Binary (Linux/macOS/Windows)

# Download the binary for your OS from: # https://github.com/AlexxIT/go2rtc/releases # Linux x64: wget https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64 chmod +x go2rtc_linux_amd64 ./go2rtc_linux_amd64

go2rtc config.yaml: Adding RTSP Camera Streams

All stream sources are defined in config.yaml. The streams: section maps a stream name to one or more source URLs. go2rtc picks the first working source automatically.

Basic config.yaml Example

api: listen: ":1984" # Web UI on port 1984 rtsp: listen: ":8554" # RTSP output port streams: frontdoor: rtsp://admin:password@192.168.1.101:554/h264/ch1/main/av_stream backyard: rtsp://admin:password@192.168.1.102:554/h264/ch1/main/av_stream garage: rtsp://admin:password@192.168.1.103:554/stream1

With Sub-Stream Fallback

streams: reolink_front: - rtsp://admin:password@192.168.1.101:554/h264Preview_01_main - rtsp://admin:password@192.168.1.101:554/h264Preview_01_sub

Using ONVIF Auto-Discovery

streams: hikvision_cam: onvif://admin:password@192.168.1.100

After editing config.yaml, restart go2rtc. The Web UI at http://go2rtc-host:1984 shows all active streams with live thumbnails.

go2rtc Source URLs by Camera Brand

Brandgo2rtc streams: entry
Reolinkrtsp://admin:pass@ip:554/h264Preview_01_main
Hikvisionrtsp://admin:pass@ip:554/Streaming/Channels/101
Dahuartsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=0
Axisrtsp://root:pass@ip/axis-media/media.amp
Taportsp://admin:pass@ip:554/stream1
Amcrestrtsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=0
Any ONVIF camonvif://user:pass@ip

See the full RTSP URL list → for more brands.

go2rtc with Frigate NVR

Frigate uses go2rtc as its internal media server. If you already run Frigate, go2rtc is running at port 8554 and you can use the same RTSP re-stream URLs in SmartRTSP.

In your Frigate config.yaml, cameras are defined like this:

cameras: frontdoor: ffmpeg: inputs: - path: rtsp://admin:password@192.168.1.101:554/stream1 roles: - detect - record

Frigate automatically registers these cameras in go2rtc. The resulting RTSP URL in SmartRTSP would be:

rtsp://frigate-host-ip:8554/frontdoor

Home Assistant + Frigate users: Your go2rtc streams are available from inside your home network. Use SmartRTSP for a full-featured iPhone viewer alongside your Frigate dashboard.

Viewing go2rtc Streams in SmartRTSP

SmartRTSP connects to any RTSP source — including go2rtc re-broadcast streams. This is ideal if you have cameras that normally limit concurrent viewers.

  1. 1. Ensure go2rtc is running and your streams are active (check Web UI at http://go2rtc-ip:1984)
  2. 2. Open SmartRTSP on iPhone or Mac
  3. 3. Tap +Manual URL
  4. 4. Enter: rtsp://[go2rtc-ip]:8554/[stream-name]
  5. 5. Tap Connect — stream appears immediately

Note: go2rtc streams are available on your local network. For remote access from outside your home, connect via VPN first, then use the same RTSP URL with the internal IP.

go2rtc FAQ

Does go2rtc re-encode the stream?

No — by default go2rtc passes the video stream through without re-encoding (zero-copy). This means zero CPU overhead and no quality loss. The camera's native H.264 or H.265 stream is forwarded as-is to SmartRTSP and other clients.

What port does go2rtc use for RTSP output?

go2rtc's RTSP server defaults to port 8554 (not the standard 554). This avoids needing root privileges on Linux. The Web UI runs on port 1984. Both ports are configurable in config.yaml.

Can go2rtc replace a dedicated NVR?

go2rtc is a streaming server, not an NVR — it does not record. For recording, pair it with Frigate NVR (which uses go2rtc internally) or another DVR solution. go2rtc's job is stream re-broadcasting and format conversion.

Is go2rtc free and open source?

Yes. go2rtc is fully open source (MIT license) and free to use. It is maintained by AlexxIT on GitHub.

View go2rtc Streams on iPhone & Mac

SmartRTSP is a free RTSP viewer for iOS and macOS. Connect directly to any go2rtc stream URL — no setup, no subscription.

Download SmartRTSP Free