WebRTC not working with NabuCasa + Frigate

Hi All.

Recently I’ve subscribed to Nabu-Casa to test the Alexa integration and the remote access without tailscale, to make it easier for my family.

In the computer and in the app (local or remote with tailscale) the video stream usually goes to WebRTC.

Now in the APP, with Nabu Casa configured, when using the wifi WebRTC is the usual stream type. However, when on remote/5G, it only goes to jsmpeg and this way the two-way audio does not work.

Nabu Casa does have WebRTC connection enabled in the home assistant cloud settings.

Running Frigate in a docker container, version 0.16.3-9034454.

Running Frigate Proxy Add-on in HAOS, version 1.6.

I’m running Home Assistant OS with core and supervisor 2026.1.1, operating system 16.3 and front-end 20260107.1.
App version: 2026.1.1 (2026.1652).

I think it depends on the camera stream.
Usually h265 will not work with all browsers and I think it doesnt work with nabucasa.
If you have h264 stream then it is something off, but if you don’t try to encode it to h264.

I check using the API (api/go2rtc/streams) and from the JSON, it does not looks like it is using h265.

{
  "camera_high_res": {
    "producers": [
      {
        "id": 2147565568,
        "format_name": "tapo",
        "protocol": "http",
        "remote_addr": "192.168.1.X:8800",
        "medias": [
          "video, recvonly, H264",
          "audio, recvonly, PCMA/8000",
          "audio, sendonly, PCMA/8000"
        ],
        "receivers": [
          {
            "id": 3,
            "codec": {
              "codec_name": "h264",
              "codec_type": "video"
            },
            "childs": [4, 8],
            "bytes": 9316840842,
            "packets": 4359284
          },
          {
            "id": 5,
            "codec": {
              "codec_name": "pcm_alaw",
              "codec_type": "audio",
              "sample_rate": 8000
            },
            "childs": [6, 9],
            "bytes": 2325975040,
            "packets": 2271460
          }
        ],
        "senders": [
          {
            "id": 24,
            "codec": {
              "codec_name": "ANY",
              "codec_type": ""
            },
            "parent": 276,
            "bytes": 256800,
            "packets": 1605
          }
        ],
        "bytes_recv": 12666906128,
        "url": ""
      },
      {
        "url": "ffmpeg:rtsp://*:*@192.168.1.X/stream1#audio=aac"
      }
    ],
    "consumers": [
      {
        "id": 2,
        "format_name": "rtsp",
        "protocol": "rtsp+tcp",
        "remote_addr": "127.0.0.1:59696",
        "sdp": "v=0\r\no=- 1 1 IN IP4 0.0.0.0\r\ns=go2rtc/1.9.9\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=recvonly\r\na=control:trackID=0\r\nm=audio 0 RTP/AVP 97\r\na=rtpmap:97 PCMA/8000\r\na=recvonly\r\na=control:trackID=1\r\n",
        "user_agent": "FFmpeg Frigate/0.16.3-9034454",
        "medias": ["video, sendonly, ANY", "audio, sendonly, ANY"],
        "senders": [
          {
            "id": 4,
            "codec": { "codec_name": "h264", "codec_type": "video" },
            "parent": 3,
            "bytes": 9316840842,
            "packets": 4359284
          },
          {
            "id": 6,
            "codec": { "codec_name": "pcm_alaw", "codec_type": "audio", "sample_rate": 8000 },
            "parent": 5,
            "bytes": 2325975040,
            "packets": 2271460
          }
        ],
        "bytes_send": 11829041383
      }
    ]
  },
  "camera_low_res": {
    "producers": [
      {
        "id": 2149345536,
        "format_name": "tapo",
        "protocol": "http",
        "remote_addr": "192.168.1.X:8800",
        "medias": [
          "video, recvonly, H264",
          "audio, recvonly, PCMA/8000",
          "audio, sendonly, PCMA/8000"
        ],
        "receivers": [
          {
            "id": 10,
            "codec": { "codec_name": "h264", "codec_type": "video" },
            "childs": [11],
            "bytes": 1488465130,
            "packets": 4359334
          },
          {
            "id": 12,
            "codec": { "codec_name": "pcm_alaw", "codec_type": "audio", "sample_rate": 8000 },
            "childs": [13],
            "bytes": 2325975040,
            "packets": 2271460
          }
        ],
        "senders": [
          {
            "id": 43,
            "codec": { "codec_name": "pcm_alaw", "codec_type": "audio", "sample_rate": 8000 },
            "parent": 272
          }
        ],
        "bytes_recv": 4891483904,
        "url": ""
      },
      {
        "url": "ffmpeg:rtsp://*:*@192.168.1.X/stream2#audio=aac"
      }
    ]
  }
}

Well if it is using jsmpeg that can indicate that is using substream that you don’t for some reason get on your mob.
When I test my cameras in go2rtc they are using rtc for streaming on local network.
It also might be that you miss configured your frigate config. It is guessing game by the info you provided.
Edit:
Did you clicked on enable frigate native webrtc support on frigate integration ?
I have this disabled.

Mine is disabled too.

Managed to solve this by adding a port forwarding rule for port 8555 in my router… though not ideal, it was the only way that I managed to make it work.

There is one thing you could do.
Just delete frigate card and add it again. Sometimes it solve weird issue with video stream.