rudyberends / homebridge-loxone-proxy

Homebridge Dynamic Platform Plugin which exposes a Loxone System to Homekit
Apache License 2.0
12 stars 6 forks source link

Problem with video streams #51

Closed sgasser closed 9 months ago

sgasser commented 9 months ago

Hi, thanks for this great package 👏🏼

The intercom camera is not always working, it crashes the whole Homebridge.

This is the log:

Connected to Miniserver Error: spawn ffmpeg ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:286:19) at onErrorNT (node:internal/child_process:484:16) at processTicksAndRejections (node:internal/process/task_queues:82:21) Got SIGTERM, shutting down Homebridge... [Tür] The image snapshot handler for the given accessory is slow to respond! See https://homebridge.io/w/JtMGR for more info. [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null [HB Supervisor] Restarting Homebridge...

But sometimes it also working.

How can I help you to solve this?

ccky commented 9 months ago

Have you tried running plugin as child bridge?

Homebridge UI > Plugins > Homebridge Loxone Proxy > ... > Bridge Settings

rudyberends commented 9 months ago

This seems to be related to ffmpeg. What platform are you using to run homebridge?

When does this crash occur? During live view of the camera?

The error happens on a spawn of the FFMPEG process, and the error is ENOENT, which could mean that the ffmpeg binary cannot be found. It could be that you do not have the ffmpeg binaries on your system, but that doesn't explain why it sometimes does work.

sgasser commented 9 months ago

I tried out and now I got:

[11/26/2023, 10:25:29 AM] [homebridge-loxone-proxy] This plugin generated a warning from the characteristic 'Configured Name': Characteristic not in required or optional characteristic section for service Switch. Adding anyway.. See https://homebridge.io/w/JtMGR for more info. Error: spawn ffmpeg ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:286:19) at onErrorNT (node:internal/child_process:484:16) at processTicksAndRejections (node:internal/process/task_queues:82:21) [11/26/2023, 10:25:38 AM] [homebridge-loxone-proxy] Child bridge process ended [11/26/2023, 10:25:38 AM] [homebridge-loxone-proxy] Process Ended. Code: 1, Signal: null [11/26/2023, 10:25:45 AM] [homebridge-loxone-proxy] Restarting Process...

sgasser commented 9 months ago

This seems to be related to ffmpeg. What platform are you using to run homebridge?

Tried out on Mac and with Docker on Synology.

When does this crash occur? During live view of the camera?

Yes, exactly

The error happens on a spawn of the FFMPEG process, and the error is ENOENT, which could mean that the ffmpeg binary cannot be found. It could be that you do not have the ffmpeg binaries on your system, but that doesn't explain why it sometimes does work.

rudyberends commented 9 months ago

can you give me the output of the following command;

which ffmpeg

If you run it in a docker container, you probably have the option to run a terminal from your homebridge setup. On a Mac you can just open a terminal

sgasser commented 9 months ago

can you give me the output of the following command;

which ffmpeg

/opt/homebrew/bin/ffmpeg

If you run it in a docker container, you probably have the option to run a terminal from your homebridge setup. An a Mac you can just open a terminal

I have installed ffmpeg and now it seems to work for one camera. But the second one worked at the beginning and no longer does.

This is the log:

[11/26/2023, 10:48:07 AM] [homebridge-loxone-proxy] Connected to Miniserver
[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.0.40.1)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT:   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

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: Input #0, mpjpeg, from 'http://192.168.42.103/mjpg/video.mjpg':
  Duration: N/A, bitrate: N/A

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT:   Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 640x480 [SAR 96:96 DAR 4:3], 25 tbr, 25 tbn

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: Output #0, image2, to 'pipe:':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown, progressive), 640x480 [SAR 96:96 DAR 4:3], q=2-31, 200 kb/s
[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: , 25 fps, 25 tbn
    Metadata:
      encoder         : Lavc60.3.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A

[image2 @ 0x118e05040] The specified filename 'pipe:' does not contain an image sequence pattern or a pattern is invalid.bitrate=N/A speed=N/A    
[image2 @ 0x118e05040] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image.

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: frame=    1 fps=0.0 q=4.7 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x    
video:25kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.0.40.1)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT:   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

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: Input #0, mpjpeg, from 'http://192.168.42.101/mjpg/video.mjpg':
  Duration: N/A, bitrate: N/A

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT:   Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 640x480 [SAR 96:96 DAR 4:3], 25 tbr, 25 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: Output #0, image2, to 'pipe:':
  Metadata:
    encoder         : Lavf60.3.100

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT:   Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown, progressive), 640x480 [SAR 96:96 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn
    Metadata:
      encoder         : Lavc60.3.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A

[image2 @ 0x11f7047f0] The specified filename 'pipe:' does not contain an image sequence pattern or a pattern is invalid.bitrate=N/A speed=N/A    
[image2 @ 0x11f7047f0] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image.

[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: frame=    1 fps=0.0 q=5.7 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x    
video:35kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[11/26/2023, 10:48:12 AM] [homebridge-loxone-proxy] SNAPSHOT: 

Maybe the code does not work with 2 cameras?

sgasser commented 9 months ago

Now it works. It was a problem that the Apple TV was connected to a different wifi (Guest).