dgreif / ring

Unofficial packages for Ring Doorbells, Cameras, Alarm System, and Smart Lighting
MIT License
1.17k stars 155 forks source link

Live stream fails/times out, snapshots work #1428

Closed mrbritten closed 2 weeks ago

mrbritten commented 3 weeks ago

Streaming Issue

Snapshots work as expected and update without issue. When trying to load live stream it tries to load and then times out. Live stream occasionally works, but infrequently.

Proposed Solution

Not sure, it used to work fine, issue for the last few weeks.

Environment

Homebridge

What operating system are you on?

Linux

Relevant log output

[15/06/2024, 07:05:21] [Ring] No snapshot cached for Front Door
[15/06/2024, 07:05:21] [Ring] Loading new snapshot into cache for Front Door
[15/06/2024, 07:05:22] [Ring] Snapshot cached for Front Door (0.392s)
[15/06/2024, 07:05:28] [Ring] Used cached snapshot for Front Door
[15/06/2024, 07:05:28] [Ring] Loading new snapshot into cache for Front Door
[15/06/2024, 07:05:28] [Ring] Snapshot cached for Front Door (0.361s)
[15/06/2024, 07:05:29] [Ring] Preparing Live Stream for Front Door
[15/06/2024, 07:05:30] [Ring] Stream Prepared for Front Door (0.311s)
[15/06/2024, 07:05:30] [Ring] Activating stream for Front Door (0.403s)
[15/06/2024, 07:05:30] [Ring] WebSocket connected for Front Door (Cloud)
[15/06/2024, 07:05:30] [Ring] iceConnectionStateChange: completed
[15/06/2024, 07:05:31] [Ring] connectionStateChange: connecting
[15/06/2024, 07:05:31] [Ring] iceConnectionStateChange: new
[15/06/2024, 07:05:31] [Ring] iceConnectionStateChange: checking
[15/06/2024, 07:05:31] [Ring] Activating Session
[15/06/2024, 07:05:31] [Ring] Streaming active for Front Door (1.263s)
[15/06/2024, 07:05:31] [Ring] Return Audio (Front Door): [udp @ 0x76fd1f60] attempted to set receive buffer to size 393216 but it only ended up set as 360448
[udp @ 0x76fd1ec0] attempted to set receive buffer to size 393216 but it only ended up set as 360448

[15/06/2024, 07:05:31] [Ring] From Ring (Front Door): [udp @ 0x76fd6f60] attempted to set receive buffer to size 393216 but it only ended up set as 360448
[udp @ 0x76fd6ec0] attempted to set receive buffer to size 393216 but it only ended up set as 360448

[15/06/2024, 07:05:31] [Ring] iceConnectionStateChange: new
[15/06/2024, 07:05:31] [Ring] iceConnectionStateChange: connected
[15/06/2024, 07:05:31] [Ring] connectionStateChange: connected
[15/06/2024, 07:05:31] [Ring] Received stream data from Front Door (1.831s)
[15/06/2024, 07:05:31] [Ring] received first video packet
[15/06/2024, 07:05:31] [Ring] received first audio packet
[15/06/2024, 07:05:32] [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) -> aac (libfdk_aac))
Output #0, rtp, to 'rtp://127.0.0.1:57238?pkt_size=376':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: aac (ELD), 16000 Hz, mono, s16, 24 kb/s
    Metadata:
      encoder         : Lavc60.3.100 libfdk_aac
size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
[15/06/2024, 07:05:32] [Ring] From Ring (Front Door): size=       4kB time=00:00:01.10 bitrate=  26.3kbits/s speed=1.97x    
[15/06/2024, 07:05:33] [Ring] From Ring (Front Door): size=       5kB time=00:00:01.71 bitrate=  25.8kbits/s speed=1.52x    
[15/06/2024, 07:05:33] [Ring] From Ring (Front Door): size=       7kB time=00:00:02.31 bitrate=  26.3kbits/s speed=1.37x    
[15/06/2024, 07:05:34] [Ring] From Ring (Front Door): size=       9kB time=00:00:02.79 bitrate=  26.6kbits/s speed=1.27x    
[15/06/2024, 07:05:34] [Ring] From Ring (Front Door): size=      11kB time=00:00:03.40 bitrate=  26.3kbits/s speed=1.24x    
[15/06/2024, 07:05:35] [Ring] From Ring (Front Door): size=      13kB time=00:00:03.91 bitrate=  26.3kbits/s speed=1.19x    
[15/06/2024, 07:05:35] [Ring] From Ring (Front Door): size=      14kB time=00:00:04.39 bitrate=  26.4kbits/s speed=1.15x    
[15/06/2024, 07:05:36] [Ring] From Ring (Front Door): size=      16kB time=00:00:05.00 bitrate=  26.3kbits/s speed=1.13x    
[15/06/2024, 07:05:36] [Ring] From Ring (Front Door): size=      18kB time=00:00:05.61 bitrate=  26.1kbits/s speed=1.14x    
[15/06/2024, 07:05:37] [Ring] From Ring (Front Door): size=      20kB time=00:00:06.12 bitrate=  26.2kbits/s speed=1.13x    
[15/06/2024, 07:05:37] [Ring] From Ring (Front Door): size=      21kB time=00:00:06.60 bitrate=  26.3kbits/s speed=1.11x    
[15/06/2024, 07:05:38] [Ring] From Ring (Front Door): size=      23kB time=00:00:07.21 bitrate=  26.2kbits/s speed= 1.1x    
[15/06/2024, 07:05:39] [Ring] From Ring (Front Door): size=      25kB time=00:00:07.82 bitrate=  26.3kbits/s speed= 1.1x    
[15/06/2024, 07:05:39] [Ring] From Ring (Front Door): size=      27kB time=00:00:08.30 bitrate=  26.4kbits/s speed=1.08x    
[15/06/2024, 07:05:40] [Ring] From Ring (Front Door): size=      29kB time=00:00:08.91 bitrate=  26.3kbits/s speed=1.08x    
[15/06/2024, 07:05:40] [Ring] From Ring (Front Door): size=      30kB time=00:00:09.42 bitrate=  26.3kbits/s speed=1.08x    
[15/06/2024, 07:05:41] [Ring] From Ring (Front Door): size=      32kB time=00:00:09.96 bitrate=  26.4kbits/s speed=1.08x    
[15/06/2024, 07:05:41] [Ring] Return Audio (Front Door): Input #0, sdp, from 'pipe:':
  Metadata:
    title           : Talk
  Duration: N/A, bitrate: N/A
  Stream #0:0: Audio: aac, 16000 Hz, mono, s16

[15/06/2024, 07:05:41] [Ring] Return Audio (Front Door): Stream mapping:
  Stream #0:0 -> #0:0 (aac (libfdk_aac) -> opus (libopus))

[15/06/2024, 07:05:41] [Ring] From Ring (Front Door): size=      34kB time=00:00:10.41 bitrate=  26.4kbits/s speed=1.06x    
[15/06/2024, 07:05:42] [Ring] From Ring (Front Door): size=      35kB time=00:00:11.02 bitrate=  26.3kbits/s speed=1.07x    
[15/06/2024, 07:05:42] [Ring] From Ring (Front Door): size=      37kB time=00:00:11.50 bitrate=  26.4kbits/s speed=1.06x    
[15/06/2024, 07:05:43] [Ring] From Ring (Front Door): size=      39kB time=00:00:12.11 bitrate=  26.3kbits/s speed=1.06x    
[15/06/2024, 07:05:43] [Ring] From Ring (Front Door): size=      40kB time=00:00:12.62 bitrate=  26.3kbits/s speed=1.05x    
[15/06/2024, 07:05:44] [Ring] From Ring (Front Door): size=      42kB time=00:00:13.19 bitrate=  26.3kbits/s speed=1.05x    
[15/06/2024, 07:05:44] [Ring] From Ring (Front Door): size=      44kB time=00:00:13.71 bitrate=  26.3kbits/s speed=1.05x    
[15/06/2024, 07:05:45] [Ring] From Ring (Front Door): size=      46kB time=00:00:14.22 bitrate=  26.3kbits/s speed=1.05x    
[15/06/2024, 07:05:45] [Ring] From Ring (Front Door): size=      47kB time=00:00:14.70 bitrate=  26.3kbits/s speed=1.04x    
[15/06/2024, 07:05:46] [Ring] From Ring (Front Door): size=      49kB time=00:00:15.31 bitrate=  26.3kbits/s speed=1.05x    
[15/06/2024, 07:05:46] [Ring] From Ring (Front Door): size=      51kB time=00:00:15.82 bitrate=  26.3kbits/s speed=1.05x    
[15/06/2024, 07:05:47] [Ring] From Ring (Front Door): size=      52kB time=00:00:16.30 bitrate=  26.3kbits/s speed=1.04x    
[15/06/2024, 07:05:48] [Ring] From Ring (Front Door): size=      54kB time=00:00:16.81 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:48] [Ring] From Ring (Front Door): size=      56kB time=00:00:17.51 bitrate=  26.3kbits/s speed=1.04x    
[15/06/2024, 07:05:49] [Ring] From Ring (Front Door): size=      58kB time=00:00:17.99 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:49] [Ring] From Ring (Front Door): size=      59kB time=00:00:18.51 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:50] [Ring] From Ring (Front Door): size=      61kB time=00:00:19.11 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:50] [Ring] From Ring (Front Door): size=      63kB time=00:00:19.72 bitrate=  26.3kbits/s speed=1.04x    
[15/06/2024, 07:05:51] [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:59690':
  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
size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
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: unknown

[15/06/2024, 07:05:51] [Ring] Return Audio (Front Door): stopped gracefully
[15/06/2024, 07:05:51] [Ring] From Ring (Front Door): size=      65kB time=00:00:20.20 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:52] [Ring] From Ring (Front Door): size=      67kB time=00:00:20.71 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:52] [Ring] From Ring (Front Door): size=      68kB time=00:00:21.32 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:53] [Ring] From Ring (Front Door): size=      70kB time=00:00:21.83 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:53] [Ring] From Ring (Front Door): size=      72kB time=00:00:22.31 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:54] [Ring] From Ring (Front Door): size=      74kB time=00:00:22.92 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:54] [Ring] From Ring (Front Door): size=      75kB time=00:00:23.50 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:55] [Ring] From Ring (Front Door): size=      77kB time=00:00:24.04 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:55] [Ring] From Ring (Front Door): size=      79kB time=00:00:24.52 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:56] [Ring] From Ring (Front Door): size=      81kB time=00:00:25.10 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:56] [Ring] From Ring (Front Door): size=      82kB time=00:00:25.64 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:57] [Ring] From Ring (Front Door): size=      84kB time=00:00:26.15 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:57] [Ring] From Ring (Front Door): size=      85kB time=00:00:26.60 bitrate=  26.3kbits/s speed=1.02x    
[15/06/2024, 07:05:58] [Ring] From Ring (Front Door): size=      87kB time=00:00:27.21 bitrate=  26.3kbits/s speed=1.02x    
[15/06/2024, 07:05:59] [Ring] From Ring (Front Door): size=      89kB time=00:00:27.82 bitrate=  26.3kbits/s speed=1.03x    
[15/06/2024, 07:05:59] [Ring] From Ring (Front Door): size=      91kB time=00:00:28.30 bitrate=  26.3kbits/s speed=1.02x    
[15/06/2024, 07:06:00] [Ring] From Ring (Front Door): size=      93kB time=00:00:28.91 bitrate=  26.3kbits/s speed=1.02x    
[15/06/2024, 07:06:00] [Ring] Stopped Live Stream for Front Door
[15/06/2024, 07:06:00] [Ring] connectionStateChange: closed
[15/06/2024, 07:06:00] [Ring] iceConnectionStateChange: closed
[15/06/2024, 07:06:10] [Ring] From Ring (Front Door): stopped gracefully
[15/06/2024, 07:06:10] [Ring] From Ring (Front Door): Error demuxing input file 0: Operation timed out
pipe:: Operation timed out

[15/06/2024, 07:06:10] [Ring] From Ring (Front Door): size=      95kB time=00:00:29.39 bitrate=  26.4kbits/s speed=0.76x    
video:0kB audio:86kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.483850%

[15/06/2024, 07:06:10] [Ring] From Ring (Front Door): Exiting normally, received signal 15.

Honesty Time

tsightler commented 2 weeks ago

I would suggest setting unbridgeCameras: true and readding the camera to homekit and trying again. Why? Well, using the default setting leverages AAC audio, and the AAC encoder/decoder can be quite picky. Switching to unbridged cameras will cause the audio to use Opus, and this is more standard and requires less processing overhead. If things still don't work with unbridged camera, then you'll need to look carefully at the network setup. Above there are pipe timeouts, which indicate there could be dropped packets or some other issues receiving the packets fast enough.

tsightler commented 2 weeks ago

Also, make sure you have followed up all troubleshooting steps listed in the wiki:

https://github.com/dgreif/ring/wiki/Camera-Troubleshooting#streams-only-work-at-home-but-not-on-lte

If you homebridge server has mulitple NICs, then video/audio being routed on the wrong network is quite common. You'll likely need to manually setup mDNS to register only on the correct network. That's a really common reason for timeout issues on the local network, as are clients that use various VPN or other privacy tools.

Nothing above implies anything wrong with the code itself, actually, the streams start and are sending and even appear to be receiving, but then there is a timeout.

mrbritten commented 2 weeks ago

Also, make sure you have followed up all troubleshooting steps listed in the wiki:

https://github.com/dgreif/ring/wiki/Camera-Troubleshooting#streams-only-work-at-home-but-not-on-lte

If you homebridge server has mulitple NICs, then video/audio being routed on the wrong network is quite common. You'll likely need to manually setup mDNS to register only on the correct network. That's a really common reason for timeout issues on the local network, as are clients that use various VPN or other privacy tools.

Nothing above implies anything wrong with the code itself, actually, the streams start and are sending and even appear to be receiving, but then there is a timeout.

Thanks for the advice, I appreciate the detailed information. I actually went ahead and upgraded my Raspberry pi and am using scrypted now and everything is working great.