Frigate has different live view options, some of which require the bundled
go2rtc to be configured as shown in the step by step guide.
Live View Options
Live view options can be selected while viewing the live stream. The options are:
|Source||Latency||Frame Rate||Resolution||Audio||Requires go2rtc||Other Limitations|
|jsmpeg||low||same as ||same as detect||no||no||none|
|mse||low||native||native||yes (depends on audio codec)||yes||not supported on iOS, Firefox is h.264 only|
|webrtc||lowest||native||native||yes (depends on audio codec)||yes||requires extra config, doesn't support h.265|
MSE Requires AAC audio, WebRTC requires PCMU/PCMA, or opus audio. If you want to support both MSE and WebRTC then your restream config needs to make sure both are enabled.
rtsp_cam: # <- for RTSP streams
- rtsp://192.168.1.5:554/live0 # <- stream which supports video & aac audio
- "ffmpeg:rtsp_cam#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
http_cam: # <- for http streams
- http://192.168.50.155/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=user&password=password # <- stream which supports video & aac audio
- "ffmpeg:http_cam#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
Setting Stream For Live UI
There may be some cameras that you would prefer to use the sub stream for live view, but the main stream for recording. This can be done via
live -> stream_name.
- rtsp://192.168.1.5:554/live0 # <- stream which supports video & aac audio.
- "ffmpeg:rtsp_cam#audio=opus" # <- copy of the stream which transcodes audio to opus
- rtsp://192.168.1.5:554/substream # <- stream which supports video & aac audio.
- "ffmpeg:rtsp_cam_sub#audio=opus" # <- copy of the stream which transcodes audio to opus
- path: rtsp://127.0.0.1:8554/test_cam # <--- the name here must match the name of the camera in restream
- path: rtsp://127.0.0.1:8554/test_cam_sub # <--- the name here must match the name of the camera_sub in restream
WebRTC extra configuration:
WebRTC works by creating a TCP or UDP connection on port
8555. However, it requires additional configuration:
For external access, over the internet, setup your router to forward port
8555on the Frigate device, for both TCP and UDP.
For internal/local access, unless you are running through the add-on, you will also need to set the WebRTC candidates list in the go2rtc config. For example, if
192.168.1.10is the local IP of the device running Frigate:/config/frigate.yaml
For access through Tailscale, the Frigate system's Tailscale IP must be added as a WebRTC candidate. Tailscale IPs all start with
100., and are reserved within the
This extra configuration may not be required if Frigate has been installed as a Home Assistant add-on, as Frigate uses the Supervisor's API to generate a WebRTC candidate.
However, it is recommended if issues occur to define the candidates manually. You should do this if the Frigate add-on fails to generate a valid candidate. If an error occurs you will see some warnings like the below in the add-on logs page during the initialization:
[WARN] Failed to get IP address from supervisor
[WARN] Failed to get WebRTC port from supervisor
If you are having difficulties getting WebRTC to work and you are running Frigate with docker, you may want to try changing the container network mode:
network: host, in this mode you don't need to forward any ports. The services inside of the Frigate container will have full access to the network interfaces of your host machine as if they were running natively and not in a container. Any port conflicts will need to be resolved. This network mode is recommended by go2rtc, but we recommend you only use it if necessary.
network: bridgeis the default network driver, a bridge network is a Link Layer device which forwards traffic between network segments. You need to forward any ports that you want to be accessible from the host IP.
If not running in host mode, port 8555 will need to be mapped for the container:
- "8555:8555/tcp" # WebRTC over tcp
- "8555:8555/udp" # WebRTC over udp
See go2rtc WebRTC docs for more information about this.