diff --git a/docker/rootfs/usr/local/go2rtc/go2rtc.yaml b/docker/rootfs/usr/local/go2rtc/go2rtc.yaml index e068036b5..a2f8d6077 100644 --- a/docker/rootfs/usr/local/go2rtc/go2rtc.yaml +++ b/docker/rootfs/usr/local/go2rtc/go2rtc.yaml @@ -2,6 +2,5 @@ log: format: text webrtc: - listen: ":8555" candidates: - stun:8555 diff --git a/docs/docs/configuration/live.md b/docs/docs/configuration/live.md index d0353cb34..cec16751a 100644 --- a/docs/docs/configuration/live.md +++ b/docs/docs/configuration/live.md @@ -17,27 +17,37 @@ Live view options can be selected while viewing the live stream. The options are ### WebRTC extra configuration: -webRTC works by creating a websocket connection on extra ports. One of the following is required for webRTC to work: -* Frigate is run with `network_mode: host` to support automatic UDP port pass through locally and remotely. See https://github.com/AlexxIT/go2rtc#module-webrtc for more details -* Frigate is run with `network_mode: bridge` and has: - * Router setup to forward port `8555` to port `8555` on the Frigate device. - * For local webRTC, you will need to create your own go2rtc config: +WebRTC works by creating a TCP or UDP connection on port `8555`. However, it requires additional configuration: -```yaml -log: - format: text +* For external access, over the internet, setup your router to forward port `8555` to port `8555` on the Frigate device, for both TCP and UDP. +* For internal/local access, you will need to use a custom go2rtc config: + 1. Create your own go2rtc config, based on [Frigate's internal go2rtc config](https://github.com/blakeblackshear/frigate/blob/dev/docker/rootfs/usr/local/go2rtc/go2rtc.yaml). + 2. Add your internal IP to the list of `candidates`. Here is an example, assuming that `192.168.1.10` is the local IP of the device running Frigate: -webrtc: - candidates: - - :8555 # <--- enter Frigate host IP here - - stun:8555 -``` + ```yaml title="/config/frigate-go2rtc.yaml" + log: + format: text -and pass that config to Frigate via docker or `frigate-go2rtc.yaml` for addon users: + webrtc: + candidates: + - 192.168.1.10:8555 + - stun:8555 + ``` -See https://github.com/AlexxIT/go2rtc#module-webrtc for more details + 3. Mount this config file at `/config/frigate-go2rtc.yaml`. Here is an example, if you run Frigate through docker-compose: -```yaml -volumes: - - /path/to/your/go2rtc.yaml:/config/frigate-go2rtc.yaml:ro -``` + ```yaml title="docker-compose.yaml" + volumes: + - /path/to/your/go2rtc.yaml:/config/frigate-go2rtc.yaml + ``` + +:::note + +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: bridge` creates a virtual network interface for the container, and the container will have full access to it. You also don't need to forward any ports, however, the IP for accessing Frigate locally will differ from the IP of the host machine. Your router will see Frigate as if it was a new device connected in the network. + +::: + +See https://github.com/AlexxIT/go2rtc#module-webrtc for more information about this.