Streaming works over cellular, but not home Wi-Fi
### Streaming Issue

#### Context

I run Homebridge on a Raspberry Pi running Ubuntu Server 20.04.6 LTS. I’m able to stream my cameras, e.g. a Ring Doorbell Pro, in the Home app when I’m using my iPhone’s cellular connection, but when I attempt to stream using my home Wi-Fi network, I get the message: “No Response — This camera is not responding” (screenshot below). Other Homebridge Ring devices (e.g. lights, thermostats, locks) work fine over my home Wi-Fi. Streaming works fine in the Ring iOS app, even when I’m on my home Wi-Fi.

I read [“Camera Troubleshooting > Streams work on LTE, but not at home”](https://github.com/dgreif/ring/wiki/Camera-Troubleshooting#streams-work-on-lte-but-not-at-home), but I’m not running a VPN (other than iCloud Private Relay) on my iPhone or on my Raspberry Pi. I experience the same issue when I disable iCloud Private Relay.

#### Config

```JSON
{
  "bridge": {
    "name": "Homebridge Ring",
    "username": "<snipped>",
    "port": 49234,
    "pin": "<snipped>",
    "advertiser": "avahi"
  },
  "description": "Homebridge Ring",
  "accessories": [],
  "platforms": [
    {
      "platform": "Ring",
      "refreshToken": "<snipped>",
      "unbridgeCameras": true,
      "hideCameraSirenSwitch": true,
      "hideAlarmSirenSwitch": true,
      "hideDoorbellSwitch": true,
      "hideUnsupportedServices": true,
      "hideDeviceIds": [
        "<snipped>"
      ],
      "ffmpegPath": "/usr/local/bin/ffmpeg"
    }
  ]
}
```

#### Versions

- Homebridge: v1.6.1                                                                                                                                                                                                   
- Homebridge Ring: v12.0.1
- Node.js: v18.17.1
- ffmpeg:
  ```
  ffmpeg version 6.0-homebridge-alpine-aarch64-static Copyright (c) 2000-2023 the   FFmpeg developers
  built with gcc 12.2.1 (Alpine 12.2.1_git20220924-r10) 20220924
  configuration: --enable-hardcoded-tables --enable-nonfree --enable-gpl --enable-hardcoded-tables --enable-hardcoded-tables --enable-openssl --enable-libdav1d --enable-libsvtav1 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libxvid --enable-libvidstab --enable-libaom --enable-libzimg --enable-lv2 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libfdk-aac --enable-libwebp --enable-libsrt --disable-debug --disable-shared --enable-pthreads --enable-static --enable-version3 --extra-cflags='-I/build/workspace/include -I/build/workspace/include/lilv-0' --extra-ldexeflags=-static --extra-ldflags=-L/build/workspace/lib --extra-libs='-ldl -lpthread -lm -lz' --pkgconfigdir=/build/workspace/lib/pkgconfig --pkg-config-flags=--static --prefix=/build/workspace --extra-version=homebridge-alpine-aarch64-static
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
  ```

#### Screenshots

<img alt="Screenshot of 'No Response' error message in the Home app" src="https://github.com/dgreif/ring/assets/3104489/f07fd1b0-3004-4837-a2f4-ec2718f60e0a" width="200">


### Proposed Solution

I tried `"advertiser": "ciao"` together with `"bridge": ["eth0"]` as suggested in https://github.com/dgreif/ring/issues/1321#issuecomment-1749341219 (a comment in a similar-sounding issue), but I experienced the same results after (i.e. streaming worked over cellular, not over Wi-Fi).

### Environment

Homebridge

### What operating system are you on?

Linux

### Relevant log output

Here are logs from streaming over Wi-Fi and over cellular, with `"debug": true` set:

<details>
<summary>
Streaming over home Wi-Fi (doesn’t work)
</summary>

```
[1:49:07 PM] [Ring] Stream Prepared for Front Door (0.367s)
[1:49:07 PM] [Ring] Activating stream for Front Door (0.44s)
[1:49:07 PM] [Ring] WebSocket connected for Front Door (Cloud)
[1:49:08 PM] [Ring] iceConnectionStateChange: completed
[1:49:08 PM] [Ring] connectionStateChange: connecting
[1:49:08 PM] [Ring] iceConnectionStateChange: new
[1:49:08 PM] [Ring] iceConnectionStateChange: checking
[1:49:08 PM] [Ring] Activating Session
[1:49:08 PM] [Ring] Streaming active for Front Door (1.233s)
[1:49:08 PM] [Ring] iceConnectionStateChange: new
[1:49:08 PM] [Ring] iceConnectionStateChange: connected
[1:49:09 PM] [Ring] connectionStateChange: connected
[1:49:09 PM] [Ring] Received stream data from Front Door (1.983s)
[1:49:09 PM] [Ring] received first video packet
[1:49:09 PM] [Ring] received first audio packet
[1:49:09 PM] [Ring] From Ring (Front Door): Input #0, sdp, from 'pipe:':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Audio: opus, 48000 Hz, stereo, s16
Stream mapping:
  Stream #0:0 -> #0:0 (opus (libopus) -> opus (libopus))
Output #0, rtp, to 'rtp://127.0.0.1:46389?pkt_size=376':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: opus, 24000 Hz, mono, s16, 24 kb/s
    Metadata:
      encoder         : Lavc60.3.100 libopus
size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A
[1:49:10 PM] [Ring] From Ring (Front Door): size=       2kB time=00:00:00.87 bitrate=  22.1kbits/s speed=1.73x
[1:49:10 PM] [Ring] From Ring (Front Door): size=       4kB time=00:00:01.29 bitrate=  22.9kbits/s speed=1.29x
[1:49:10 PM] [Ring] From Ring (Front Door): size=       5kB time=00:00:01.89 bitrate=  23.1kbits/s speed=1.22x
[1:49:11 PM] [Ring] From Ring (Front Door): size=       6kB time=00:00:02.29 bitrate=  22.7kbits/s speed= 1.1x
[1:49:12 PM] [Ring] From Ring (Front Door): size=       8kB time=00:00:02.99 bitrate=  23.0kbits/s speed=1.13x
[1:49:12 PM] [Ring] From Ring (Front Door): size=      10kB time=00:00:03.53 bitrate=  24.0kbits/s speed=1.12x
[1:49:13 PM] [Ring] From Ring (Front Door): size=      12kB time=00:00:04.01 bitrate=  24.3kbits/s speed= 1.1x
[1:49:13 PM] [Ring] From Ring (Front Door): size=      14kB time=00:00:04.49 bitrate=  24.7kbits/s speed=1.06x
[1:49:14 PM] [Ring] From Ring (Front Door): size=      16kB time=00:00:05.09 bitrate=  24.9kbits/s speed=1.07x
[1:49:14 PM] [Ring] From Ring (Front Door): size=      18kB time=00:00:05.69 bitrate=  25.2kbits/s speed=1.06x
[1:49:15 PM] [Ring] From Ring (Front Door): size=      20kB time=00:00:06.29 bitrate=  25.5kbits/s speed=1.05x
[1:49:15 PM] [Ring] From Ring (Front Door): size=      22kB time=00:00:06.89 bitrate=  25.6kbits/s speed=1.05x
[1:49:16 PM] [Ring] From Ring (Front Door): size=      23kB time=00:00:07.49 bitrate=  25.6kbits/s speed=1.05x
[1:49:17 PM] [Ring] From Ring (Front Door): size=      25kB time=00:00:08.01 bitrate=  25.6kbits/s speed=1.05x
[1:49:17 PM] [Ring] From Ring (Front Door): size=      27kB time=00:00:08.49 bitrate=  25.6kbits/s speed=1.04x
[1:49:18 PM] [Ring] From Ring (Front Door): size=      28kB time=00:00:09.09 bitrate=  25.4kbits/s speed=1.04x
[1:49:18 PM] [Ring] Return Audio (Front Door): Input #0, sdp, from 'pipe:':
  Metadata:
    title           : Talk
  Duration: N/A, bitrate: N/A
  Stream #0:0: Audio: opus, 48000 Hz, mono, s16
Stream mapping:
  Stream #0:0 -> #0:0 (opus (libopus) -> opus (libopus))
[1:49:18 PM] [Ring] From Ring (Front Door): size=      30kB time=00:00:09.69 bitrate=  25.3kbits/s speed=1.04x
[1:49:19 PM] [Ring] From Ring (Front Door): size=      31kB time=00:00:10.19 bitrate=  25.1kbits/s speed=1.03x
[1:49:19 PM] [Ring] From Ring (Front Door): size=      33kB time=00:00:10.69 bitrate=  25.1kbits/s speed=1.03x
[1:49:20 PM] [Ring] From Ring (Front Door): size=      35kB time=00:00:11.19 bitrate=  25.2kbits/s speed=1.03x
[1:49:20 PM] [Ring] From Ring (Front Door): size=      37kB time=00:00:11.79 bitrate=  25.5kbits/s speed=1.03x
[1:49:21 PM] [Ring] From Ring (Front Door): size=      38kB time=00:00:12.29 bitrate=  25.6kbits/s speed=1.03x
[1:49:21 PM] [Ring] From Ring (Front Door): size=      40kB time=00:00:12.89 bitrate=  25.6kbits/s speed=1.02x
[1:49:22 PM] [Ring] From Ring (Front Door): size=      42kB time=00:00:13.49 bitrate=  25.7kbits/s speed=1.03x
[1:49:23 PM] [Ring] From Ring (Front Door): size=      44kB time=00:00:14.09 bitrate=  25.6kbits/s speed=1.02x
[1:49:23 PM] [Ring] From Ring (Front Door): size=      46kB time=00:00:14.59 bitrate=  25.6kbits/s speed=1.02x
[1:49:24 PM] [Ring] From Ring (Front Door): size=      48kB time=00:00:15.19 bitrate=  25.7kbits/s speed=1.02x
[1:49:24 PM] [Ring] From Ring (Front Door): size=      50kB time=00:00:15.79 bitrate=  25.9kbits/s speed=1.02x
[1:49:25 PM] [Ring] From Ring (Front Door): size=      51kB time=00:00:16.29 bitrate=  25.8kbits/s speed=1.02x
[1:49:25 PM] [Ring] From Ring (Front Door): size=      53kB time=00:00:16.89 bitrate=  25.7kbits/s speed=1.02x
[1:49:26 PM] [Ring] From Ring (Front Door): size=      55kB time=00:00:17.39 bitrate=  25.8kbits/s speed=1.02x
[1:49:27 PM] [Ring] From Ring (Front Door): size=      57kB time=00:00:17.97 bitrate=  25.8kbits/s speed=1.02x
[1:49:27 PM] [Ring] From Ring (Front Door): size=      58kB time=00:00:18.39 bitrate=  25.8kbits/s speed=1.02x
[1:49:28 PM] [Ring] From Ring (Front Door): size=      60kB time=00:00:18.99 bitrate=  25.7kbits/s speed=1.02x
[1:49:28 PM] [Ring] Return Audio (Front Door): Error demuxing input file 0: Operation timed out
pipe:: Operation timed out
Output #0, rtp, to 'rtp://127.0.0.1:44500':
  Metadata:
    title           : Talk
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: opus, 24000 Hz, mono, s16, 24 kb/s
    Metadata:
      encoder         : Lavc60.3.100 libopus
[143B blob data]
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[1:49:28 PM] [Ring] From Ring (Front Door): size=      61kB time=00:00:19.51 bitrate=  25.6kbits/s speed=1.02x
[1:49:28 PM] [Ring] Return Audio (Front Door): stopped gracefully
[1:49:29 PM] [Ring] From Ring (Front Door): size=      63kB time=00:00:20.09 bitrate=  25.6kbits/s speed=1.02x
[1:49:29 PM] [Ring] From Ring (Front Door): size=      64kB time=00:00:20.59 bitrate=  25.6kbits/s speed=1.02x
[1:49:30 PM] [Ring] From Ring (Front Door): size=      66kB time=00:00:21.19 bitrate=  25.5kbits/s speed=1.02x
[1:49:30 PM] [Ring] From Ring (Front Door): size=      68kB time=00:00:21.79 bitrate=  25.5kbits/s speed=1.02x
[1:49:31 PM] [Ring] From Ring (Front Door): size=      69kB time=00:00:22.29 bitrate=  25.4kbits/s speed=1.01x
[1:49:31 PM] [Ring] From Ring (Front Door): size=      71kB time=00:00:22.89 bitrate=  25.3kbits/s speed=1.02x
[1:49:32 PM] [Ring] From Ring (Front Door): size=      72kB time=00:00:23.39 bitrate=  25.2kbits/s speed=1.01x
[1:49:33 PM] [Ring] From Ring (Front Door): size=      74kB time=00:00:23.99 bitrate=  25.2kbits/s speed=1.01x
[1:49:33 PM] [Ring] From Ring (Front Door): size=      75kB time=00:00:24.49 bitrate=  25.1kbits/s speed=1.01x
[1:49:34 PM] [Ring] From Ring (Front Door): size=      77kB time=00:00:25.09 bitrate=  25.1kbits/s speed=1.01x
[1:49:34 PM] [Ring] From Ring (Front Door): size=      78kB time=00:00:25.59 bitrate=  25.0kbits/s speed=1.01x
[1:49:35 PM] [Ring] From Ring (Front Door): size=      80kB time=00:00:26.11 bitrate=  25.0kbits/s speed=1.01x
[1:49:35 PM] [Ring] From Ring (Front Door): size=      81kB time=00:00:26.69 bitrate=  25.0kbits/s speed=1.01x
[1:49:36 PM] [Ring] From Ring (Front Door): size=      83kB time=00:00:27.29 bitrate=  25.0kbits/s speed=1.01x
[1:49:36 PM] [Ring] From Ring (Front Door): size=      85kB time=00:00:27.79 bitrate=  25.0kbits/s speed=1.01x
[1:49:37 PM] [Ring] From Ring (Front Door): size=      86kB time=00:00:28.29 bitrate=  24.9kbits/s speed=1.01x
[1:49:37 PM] [Ring] Stopped Live Stream for Front Door
[1:49:37 PM] [Ring] connectionStateChange: closed
[1:49:37 PM] [Ring] iceConnectionStateChange: closed
[1:49:40 PM] [Ring] Used cached snapshot for Front Door
[1:49:40 PM] [Ring] Loading new snapshot into cache for Front Door
[1:49:40 PM] [Ring] Snapshot cached for Front Door (0.71s)
[1:49:47 PM] [Ring] From Ring (Front Door): stopped gracefully
[1:49:47 PM] [Ring] From Ring (Front Door): Error demuxing input file 0: Operation timed out
pipe:: Operation timed out
[1:49:47 PM] [Ring] From Ring (Front Door): size=      87kB time=00:00:28.67 bitrate=  24.9kbits/s speed=0.749x
video:0kB audio:70kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 24.209063%
[1:49:47 PM] [Ring] From Ring (Front Door):
[1:49:47 PM] [Ring] From Ring (Front Door): Exiting normally, received signal 15.
```

</details>

<details>
<summary>
Streaming over cellular (works)
</summary>

```
[1:51:51 PM] [Ring] Preparing Live Stream for Front Door
[1:51:51 PM] [Ring] Stream Prepared for Front Door (0.358s)
[1:51:51 PM] [Ring] WebSocket connected for Front Door (Cloud)
[1:51:51 PM] [Ring] Activating stream for Front Door (0.808s)
[1:51:51 PM] [Ring] iceConnectionStateChange: completed
[1:51:52 PM] [Ring] connectionStateChange: connecting
[1:51:52 PM] [Ring] iceConnectionStateChange: new
[1:51:52 PM] [Ring] iceConnectionStateChange: checking
[1:51:52 PM] [Ring] Activating Session
[1:51:52 PM] [Ring] Streaming active for Front Door (1.123s)
[1:51:52 PM] [Ring] iceConnectionStateChange: new
[1:51:52 PM] [Ring] iceConnectionStateChange: connected
[1:51:52 PM] [Ring] connectionStateChange: connected
[1:51:52 PM] [Ring] Received stream data from Front Door (1.688s)
[1:51:52 PM] [Ring] received first video packet
[1:51:52 PM] [Ring] received first audio packet
[1:51:52 PM] [Ring] From Ring (Front Door): Input #0, sdp, from 'pipe:':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Audio: opus, 48000 Hz, stereo, s16
Stream mapping:
  Stream #0:0 -> #0:0 (opus (libopus) -> opus (libopus))
Output #0, rtp, to 'rtp://127.0.0.1:47126?pkt_size=376':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: opus, 24000 Hz, mono, s16, 24 kb/s
    Metadata:
      encoder         : Lavc60.3.100 libopus
size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A
[1:51:53 PM] [Ring] From Ring (Front Door): size=       2kB time=00:00:00.71 bitrate=  17.8kbits/s speed=1.43x
[1:51:53 PM] [Ring] From Ring (Front Door): size=       3kB time=00:00:01.25 bitrate=  18.2kbits/s speed=1.14x
[1:51:54 PM] [Ring] From Ring (Front Door): size=       4kB time=00:00:01.79 bitrate=  19.0kbits/s speed=1.12x
[1:51:55 PM] [Ring] From Ring (Front Door): size=       5kB time=00:00:02.21 bitrate=  19.0kbits/s speed=1.04x
[1:51:55 PM] [Ring] From Ring (Front Door): size=       7kB time=00:00:02.81 bitrate=  18.9kbits/s speed=1.04x
[1:51:56 PM] [Ring] From Ring (Front Door): size=       8kB time=00:00:03.41 bitrate=  19.0kbits/s speed=1.04x
[1:51:56 PM] [Ring] From Ring (Front Door): size=       9kB time=00:00:03.95 bitrate=  18.9kbits/s speed=1.03x
[1:51:57 PM] [Ring] From Ring (Front Door): size=      10kB time=00:00:04.43 bitrate=  19.3kbits/s speed=1.01x
[1:51:57 PM] [Ring] From Ring (Front Door): size=      12kB time=00:00:05.09 bitrate=  19.5kbits/s speed=1.04x
[1:51:58 PM] [Ring] From Ring (Front Door): size=      13kB time=00:00:05.63 bitrate=  19.6kbits/s speed=1.04x
[1:51:58 PM] [Ring] From Ring (Front Door): size=      15kB time=00:00:06.05 bitrate=  20.7kbits/s speed=1.02x
[1:51:59 PM] [Ring] From Ring (Front Door): size=      17kB time=00:00:06.65 bitrate=  20.4kbits/s speed=1.02x
[1:51:59 PM] [Ring] From Ring (Front Door): size=      18kB time=00:00:07.25 bitrate=  20.3kbits/s speed=1.02x
[1:52:00 PM] [Ring] From Ring (Front Door): size=      19kB time=00:00:07.79 bitrate=  20.4kbits/s speed=1.02x
[1:52:00 PM] [Ring] From Ring (Front Door): size=      20kB time=00:00:08.21 bitrate=  20.3kbits/s speed=1.01x
[1:52:01 PM] [Ring] From Ring (Front Door): size=      22kB time=00:00:08.81 bitrate=  20.2kbits/s speed=1.01x
[1:52:02 PM] [Ring] From Ring (Front Door): size=      23kB time=00:00:09.35 bitrate=  20.0kbits/s speed=1.02x
[1:52:02 PM] [Ring] Return Audio (Front Door): Input #0, sdp, from 'pipe:':
  Metadata:
    title           : Talk
[1:52:02 PM] [Ring] Return Audio (Front Door):
  Duration: N/A, bitrate: N/A
  Stream #0:0: Audio: opus, 48000 Hz, mono, s16
[1:52:02 PM] [Ring] Return Audio (Front Door): Stream mapping:
  Stream #0:0 -> #0:0 (opus (libopus) -> opus (libopus))
[1:52:02 PM] [Ring] From Ring (Front Door): size=      24kB time=00:00:09.83 bitrate=  20.1kbits/s speed=1.01x
[1:52:03 PM] [Ring] From Ring (Front Door): size=      26kB time=00:00:10.37 bitrate=  20.4kbits/s speed=1.02x
[1:52:03 PM] [Ring] From Ring (Front Door): size=      27kB time=00:00:10.85 bitrate=  20.3kbits/s speed=1.01x
[1:52:04 PM] [Ring] From Ring (Front Door): size=      28kB time=00:00:11.45 bitrate=  20.2kbits/s speed=1.01x
[1:52:04 PM] [Ring] From Ring (Front Door): size=      29kB time=00:00:11.93 bitrate=  20.2kbits/s speed=1.01x
[1:52:05 PM] [Ring] From Ring (Front Door): size=      31kB time=00:00:12.41 bitrate=  20.2kbits/s speed=1.01x
[1:52:05 PM] [Ring] From Ring (Front Door): size=      32kB time=00:00:12.95 bitrate=  20.1kbits/s speed=1.01x
[1:52:05 PM] [Ring] Stopped Live Stream for Front Door
[1:52:05 PM] [Ring] connectionStateChange: closed
[1:52:05 PM] [Ring] iceConnectionStateChange: closed
[1:52:12 PM] [Ring] Return Audio (Front Door): stopped gracefully
[1:52:12 PM] [Ring] Return Audio (Front Door): Error demuxing input file 0: Operation timed out
pipe:: Operation timed out
[1:52:12 PM] [Ring] Return Audio (Front Door): [aost#0:0/libopus @ 0xffff96087030] Finishing stream without any data written to it.
[1:52:12 PM] [Ring] Return Audio (Front Door): Output #0, rtp, to 'rtp://127.0.0.1:57119':
  Metadata:
    title           : Talk
[1:52:12 PM] [Ring] Return Audio (Front Door):
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: opus, 24000 Hz, mono, s16, 24 kb/s
[1:52:12 PM] [Ring] Return Audio (Front Door):
    Metadata:
      encoder         : Lavc60.3.100 libopus
[1:52:12 PM] [Ring] Return Audio (Front Door): size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:
[1:52:12 PM] [Ring] Return Audio (Front Door): unknown
[1:52:12 PM] [Ring] Return Audio (Front Door): Exiting normally, received signal 15.
[1:52:15 PM] [Ring] From Ring (Front Door): stopped gracefully
[1:52:15 PM] [Ring] From Ring (Front Door): Error demuxing input file 0: Operation timed out
pipe:: Operation timed out
[1:52:15 PM] [Ring] From Ring (Front Door): size=      32kB time=00:00:13.13 bitrate=  20.2kbits/s speed=0.573x
video:0kB audio:30kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.066649%
[1:52:15 PM] [Ring] From Ring (Front Door): Exiting normally, received signal 15.
```

</details>


### Honesty Time

- [X] I swear this is worth your time!