moritzmhmk / homebridge-camera-rpi

raspberry pi camera plugin for homebridge
MIT License
159 stars 29 forks source link

Streaming Issues #52

Closed milmber closed 5 years ago

milmber commented 5 years ago

Streaming works intermittently on Mac OS Home App, but not on iOS (iPhone) and Apple Watch.

iOS (not streaming at all):

Apr 13 18:22:20 raspberrypi3b homebridge[1038]: --set-ctrl video_bitrate=299000 Apr 13 18:22:20 raspberrypi3b homebridge[1038]: -f video4linux2 -input_format h264 -video_size 1280x720 -framerate 30 -i /dev/video0 -vcodec copy -an -payload_type 99 -ssrc 7605555 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params 7qelwbCpd0R2IV5YfSujyA75TXn9DpR0VzGqHATV srtp://10.0.1.22:59166?rtcpport=59166&localrtcpport=59166&pkt_size=1378 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: ffmpeg ffmpeg version 3.2.12-1~deb9u1+rpt1 Copyright (c) 2000-2018 the FFmpeg developers Apr 13 18:22:21 raspberrypi3b homebridge[1038]: built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: configuration: --prefix=/usr --extra-version='1~deb9u1+rpt1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-omx-rpi --enable-mmal --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --arch=armhf --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared Apr 13 18:22:21 raspberrypi3b homebridge[1038]: ffmpeg libavutil 55. 34.101 / 55. 34.101 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libavcodec 57. 64.101 / 57. 64.101 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libavformat 57. 56.101 / 57. 56.101 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libavdevice 57. 1.100 / 57. 1.100 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libavfilter 6. 65.100 / 6. 65.100 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libavresample 3. 1. 0 / 3. 1. 0 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libswscale 4. 2.100 / 4. 2.100 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libswresample 2. 3.100 / 2. 3.100 Apr 13 18:22:21 raspberrypi3b homebridge[1038]: libpostproc 54. 1.100 / 54. 1.100 Apr 13 18:22:22 raspberrypi3b homebridge[1038]: ffmpeg Input #0, video4linux2,v4l2, from '/dev/video0': Apr 13 18:22:22 raspberrypi3b homebridge[1038]: Duration: N/A, start: 564.472098, bitrate: N/A Apr 13 18:22:22 raspberrypi3b homebridge[1038]: ffmpeg Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720, -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 2000k tbc Apr 13 18:22:22 raspberrypi3b homebridge[1038]: ffmpeg Output #0, rtp, to 'srtp://10.0.1.22:59166?rtcpport=59166&localrtcpport=59166&pkt_size=1378': Apr 13 18:22:22 raspberrypi3b homebridge[1038]: Metadata: Apr 13 18:22:22 raspberrypi3b homebridge[1038]: encoder : Lavf57.56.101 Apr 13 18:22:22 raspberrypi3b homebridge[1038]: Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720, q=2-31, -5 kb/s, Apr 13 18:22:22 raspberrypi3b homebridge[1038]: ffmpeg 30 fps, 30 tbr, 90k tbn, 1000k tbc Apr 13 18:22:22 raspberrypi3b homebridge[1038]: Stream mapping: Apr 13 18:22:22 raspberrypi3b homebridge[1038]: Stream #0:0 -> #0:0 (copy) Apr 13 18:22:22 raspberrypi3b homebridge[1038]: Press [q] to stop, [?] for help Apr 13 18:22:22 raspberrypi3b homebridge[1038]: [rtp @ 0x1bfdf40] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly Apr 13 18:22:22 raspberrypi3b homebridge[1038]: ffmpeg frame= 23 fps=0.0 q=-1.0 size= 25kB time=00:00:00.69 bitrate= 293.6kbits/s speed=1.38x Apr 13 18:22:23 raspberrypi3b homebridge[1038]: ffmpeg frame= 38 fps= 38 q=-1.0 size= 44kB time=00:00:01.19 bitrate= 299.2kbits/s speed=1.19x Apr 13 18:22:23 raspberrypi3b homebridge[1038]: ffmpeg frame= 53 fps= 35 q=-1.0 size= 62kB time=00:00:01.69 bitrate= 299.5kbits/s speed=1.12x Apr 13 18:22:24 raspberrypi3b homebridge[1038]: ffmpeg frame= 68 fps= 34 q=-1.0 size= 95kB time=00:00:02.19 bitrate= 353.1kbits/s speed=1.09x Apr 13 18:22:25 raspberrypi3b homebridge[1038]: ffmpeg frame= 84 fps= 33 q=-1.0 size= 103kB time=00:00:02.73 bitrate= 310.1kbits/s speed=1.08x Apr 13 18:22:25 raspberrypi3b homebridge[1038]: ffmpeg frame= 99 fps= 33 q=-1.0 size= 121kB time=00:00:03.23 bitrate= 306.0kbits/s speed=1.07x Apr 13 18:22:26 raspberrypi3b homebridge[1038]: ffmpeg frame= 114 fps= 32 q=-1.0 size= 136kB time=00:00:03.73 bitrate= 299.2kbits/s speed=1.06x Apr 13 18:22:26 raspberrypi3b homebridge[1038]: ffmpeg frame= 129 fps= 32 q=-1.0 size= 176kB time=00:00:04.23 bitrate= 340.4kbits/s speed=1.05x Apr 13 18:22:27 raspberrypi3b homebridge[1038]: ffmpeg frame= 144 fps= 32 q=-1.0 size= 179kB time=00:00:04.73 bitrate= 310.3kbits/s speed=1.04x Apr 13 18:22:27 raspberrypi3b homebridge[1038]: ffmpeg frame= 159 fps= 31 q=-1.0 size= 194kB time=00:00:05.23 bitrate= 303.7kbits/s speed=1.04x Apr 13 18:22:28 raspberrypi3b homebridge[1038]: ffmpeg frame= 175 fps= 31 q=-1.0 size= 216kB time=00:00:05.76 bitrate= 306.6kbits/s speed=1.04x Apr 13 18:22:28 raspberrypi3b homebridge[1038]: ffmpeg frame= 190 fps= 31 q=-1.0 size= 257kB time=00:00:06.26 bitrate= 336.4kbits/s speed=1.03x Apr 13 18:22:29 raspberrypi3b homebridge[1038]: ffmpeg frame= 205 fps= 31 q=-1.0 size= 262kB time=00:00:06.76 bitrate= 317.4kbits/s speed=1.03x Apr 13 18:22:29 raspberrypi3b homebridge[1038]: ffmpeg frame= 220 fps= 31 q=-1.0 size= 272kB time=00:00:07.26 bitrate= 307.2kbits/s speed=1.03x Apr 13 18:22:30 raspberrypi3b homebridge[1038]: ffmpeg frame= 235 fps= 31 q=-1.0 size= 290kB time=00:00:07.76 bitrate= 306.4kbits/s speed=1.03x Apr 13 18:22:30 raspberrypi3b homebridge[1038]: ffmpeg frame= 250 fps= 31 q=-1.0 size= 334kB time=00:00:08.26 bitrate= 330.7kbits/s speed=1.02x Apr 13 18:22:31 raspberrypi3b homebridge[1038]: ffmpeg frame= 265 fps= 31 q=-1.0 size= 339kB time=00:00:08.76 bitrate= 316.5kbits/s speed=1.02x Apr 13 18:22:31 raspberrypi3b homebridge[1038]: ffmpeg frame= 280 fps= 31 q=-1.0 size= 348kB time=00:00:09.26 bitrate= 307.4kbits/s speed=1.02x Apr 13 18:22:32 raspberrypi3b homebridge[1038]: ffmpeg frame= 295 fps= 31 q=-1.0 size= 365kB time=00:00:09.76 bitrate= 306.3kbits/s speed=1.02x Apr 13 18:22:32 raspberrypi3b homebridge[1038]: ffmpeg frame= 311 fps= 31 q=-1.0 size= 408kB time=00:00:10.29 bitrate= 324.7kbits/s speed=1.02x Apr 13 18:22:33 raspberrypi3b homebridge[1038]: ffmpeg frame= 326 fps= 31 q=-1.0 size= 413kB time=00:00:10.79 bitrate= 313.6kbits/s speed=1.02x Apr 13 18:22:33 raspberrypi3b homebridge[1038]: ffmpeg frame= 341 fps= 31 q=-1.0 size= 422kB time=00:00:11.29 bitrate= 306.2kbits/s speed=1.02x Apr 13 18:22:34 raspberrypi3b homebridge[1038]: ffmpeg frame= 356 fps= 31 q=-1.0 size= 440kB time=00:00:11.79 bitrate= 305.7kbits/s speed=1.02x Apr 13 18:22:34 raspberrypi3b homebridge[1038]: ffmpeg frame= 371 fps= 31 q=-1.0 size= 482kB time=00:00:12.29 bitrate= 321.1kbits/s speed=1.02x Apr 13 18:22:35 raspberrypi3b homebridge[1038]: ffmpeg frame= 387 fps= 31 q=-1.0 size= 486kB time=00:00:12.82 bitrate= 310.2kbits/s speed=1.02x Apr 13 18:22:35 raspberrypi3b homebridge[1038]: ffmpeg frame= 401 fps= 31 q=-1.0 size= 497kB time=00:00:13.29 bitrate= 306.1kbits/s speed=1.01x Apr 13 18:22:36 raspberrypi3b homebridge[1038]: ffmpeg frame= 417 fps= 31 q=-1.0 size= 515kB time=00:00:13.82 bitrate= 305.4kbits/s speed=1.01x Apr 13 18:22:36 raspberrypi3b homebridge[1038]: ffmpeg frame= 432 fps= 31 q=-1.0 size= 556kB time=00:00:14.32 bitrate= 318.2kbits/s speed=1.01x

OS X Home App (streaming works intermittently):

Apr 13 18:25:48 raspberrypi3b homebridge[1038]: --set-ctrl video_bitrate=299000 Apr 13 18:25:48 raspberrypi3b homebridge[1038]: -f video4linux2 -input_format h264 -video_size 1280x720 -framerate 30 -i /dev/video0 -vcodec copy -an -payload_type 99 -ssrc 15367843 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params O9/LkmLBB4KOKaJlH0BklV95NG/Eb2yP9uJwTxr0 srtp://10.0.1.54:53298?rtcpport=53298&localrtcpport=53298&pkt_size=1378 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: ffmpeg ffmpeg version 3.2.12-1~deb9u1+rpt1 Copyright (c) 2000-2018 the FFmpeg developers Apr 13 18:25:49 raspberrypi3b homebridge[1038]: built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: configuration: --prefix=/usr --extra-version='1~deb9u1+rpt1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-omx-rpi --enable-mmal --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --arch=armhf --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared Apr 13 18:25:49 raspberrypi3b homebridge[1038]: ffmpeg libavutil 55. 34.101 / 55. 34.101 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libavcodec 57. 64.101 / 57. 64.101 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libavformat 57. 56.101 / 57. 56.101 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libavdevice 57. 1.100 / 57. 1.100 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libavfilter 6. 65.100 / 6. 65.100 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libavresample 3. 1. 0 / 3. 1. 0 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libswscale 4. 2.100 / 4. 2.100 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libswresample 2. 3.100 / 2. 3.100 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: libpostproc 54. 1.100 / 54. 1.100 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: ffmpeg Input #0, video4linux2,v4l2, from '/dev/video0': Apr 13 18:25:49 raspberrypi3b homebridge[1038]: Duration: N/A, start: 771.897002, bitrate: N/A Apr 13 18:25:49 raspberrypi3b homebridge[1038]: ffmpeg Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720, -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 2000k tbc Apr 13 18:25:49 raspberrypi3b homebridge[1038]: ffmpeg Output #0, rtp, to 'srtp://10.0.1.54:53298?rtcpport=53298&localrtcpport=53298&pkt_size=1378': Apr 13 18:25:49 raspberrypi3b homebridge[1038]: Metadata: Apr 13 18:25:49 raspberrypi3b homebridge[1038]: encoder : Lavf57.56.101 Apr 13 18:25:49 raspberrypi3b homebridge[1038]: ffmpeg Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720, q=2-31, -5 kb/s, 30 fps, 30 tbr, 90k tbn, 1000k tbc Apr 13 18:25:49 raspberrypi3b homebridge[1038]: Stream mapping: Apr 13 18:25:49 raspberrypi3b homebridge[1038]: Stream #0:0 -> #0:0 (copy) Apr 13 18:25:49 raspberrypi3b homebridge[1038]: Press [q] to stop, [?] for help Apr 13 18:25:49 raspberrypi3b homebridge[1038]: [rtp @ 0x4f8050] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly Apr 13 18:25:50 raspberrypi3b homebridge[1038]: ffmpeg frame= 23 fps=0.0 q=-1.0 size= 25kB time=00:00:00.69 bitrate= 292.5kbits/s speed=1.39x Apr 13 18:25:50 raspberrypi3b homebridge[1038]: ffmpeg frame= 38 fps= 38 q=-1.0 size= 43kB time=00:00:01.19 bitrate= 294.8kbits/s speed=1.19x Apr 13 18:25:51 raspberrypi3b homebridge[1038]: ffmpeg frame= 53 fps= 35 q=-1.0 size= 62kB time=00:00:01.69 bitrate= 298.2kbits/s speed=1.13x Apr 13 18:25:51 raspberrypi3b homebridge[1038]: ffmpeg frame= 68 fps= 34 q=-1.0 size= 94kB time=00:00:02.19 bitrate= 351.6kbits/s speed=1.09x Apr 13 18:25:52 raspberrypi3b homebridge[1038]: ffmpeg frame= 83 fps= 33 q=-1.0 size= 102kB time=00:00:02.69 bitrate= 311.0kbits/s speed=1.07x Apr 13 18:25:52 raspberrypi3b homebridge[1038]: ffmpeg frame= 98 fps= 32 q=-1.0 size= 120kB time=00:00:03.19 bitrate= 306.2kbits/s speed=1.06x Apr 13 18:25:53 raspberrypi3b homebridge[1038]: ffmpeg frame= 113 fps= 32 q=-1.0 size= 138kB time=00:00:03.69 bitrate= 306.2kbits/s speed=1.05x Apr 13 18:25:53 raspberrypi3b homebridge[1038]: ffmpeg frame= 129 fps= 32 q=-1.0 size= 184kB time=00:00:04.23 bitrate= 355.5kbits/s speed=1.05x Apr 13 18:25:54 raspberrypi3b homebridge[1038]: ffmpeg frame= 144 fps= 32 q=-1.0 size= 188kB time=00:00:04.73 bitrate= 324.9kbits/s speed=1.04x Apr 13 18:25:54 raspberrypi3b homebridge[1038]: ffmpeg frame= 159 fps= 32 q=-1.0 size= 197kB time=00:00:05.23 bitrate= 309.3kbits/s speed=1.04x Apr 13 18:25:55 raspberrypi3b homebridge[1038]: ffmpeg frame= 174 fps= 31 q=-1.0 size= 214kB time=00:00:05.73 bitrate= 305.8kbits/s speed=1.03x Apr 13 18:25:55 raspberrypi3b homebridge[1038]: ffmpeg frame= 189 fps= 31 q=-1.0 size= 264kB time=00:00:06.23 bitrate= 347.6kbits/s speed=1.03x

Apple Watch (streaming with a green tinted screen):

Apr 13 18:28:54 raspberrypi3b homebridge[1038]: --set-ctrl video_bitrate=68000 Apr 13 18:28:54 raspberrypi3b homebridge[1038]: -f video4linux2 -input_format h264 -video_size 320x240 -framerate 15 -i /dev/video0 -vcodec copy -an -payload_type 99 -ssrc 16114376 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params VPEOhIlv6UzuYHMSYWrgUYpZMsb+DhjfNlFCw96Z srtp://10.0.1.22:60957?rtcpport=60957&localrtcpport=60957&pkt_size=1378 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: ffmpeg ffmpeg version 3.2.12-1~deb9u1+rpt1 Copyright (c) 2000-2018 the FFmpeg developers Apr 13 18:28:55 raspberrypi3b homebridge[1038]: built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: configuration: --prefix=/usr --extra-version='1~deb9u1+rpt1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-omx-rpi --enable-mmal --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --arch=armhf --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared Apr 13 18:28:55 raspberrypi3b homebridge[1038]: ffmpeg libavutil 55. 34.101 / 55. 34.101 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libavcodec 57. 64.101 / 57. 64.101 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libavformat 57. 56.101 / 57. 56.101 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libavdevice 57. 1.100 / 57. 1.100 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libavfilter 6. 65.100 / 6. 65.100 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libavresample 3. 1. 0 / 3. 1. 0 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libswscale 4. 2.100 / 4. 2.100 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libswresample 2. 3.100 / 2. 3.100 Apr 13 18:28:55 raspberrypi3b homebridge[1038]: libpostproc 54. 1.100 / 54. 1.100 Apr 13 18:28:56 raspberrypi3b homebridge[1038]: ffmpeg Input #0, video4linux2,v4l2, from '/dev/video0': Apr 13 18:28:56 raspberrypi3b homebridge[1038]: Duration: N/A, start: 958.580387, bitrate: N/A Apr 13 18:28:56 raspberrypi3b homebridge[1038]: ffmpeg Stream #0:0: Video: h264 (High), yuv420p(progressive), 320x240, -2 kb/s, 15 fps, 15 tbr, 1000k tbn, 2000k tbc Apr 13 18:28:56 raspberrypi3b homebridge[1038]: ffmpeg Output #0, rtp, to 'srtp://10.0.1.22:60957?rtcpport=60957&localrtcpport=60957&pkt_size=1378': Apr 13 18:28:56 raspberrypi3b homebridge[1038]: Metadata: Apr 13 18:28:56 raspberrypi3b homebridge[1038]: encoder : Lavf57.56.101 Apr 13 18:28:56 raspberrypi3b homebridge[1038]: ffmpeg Stream #0:0: Video: h264 (High), yuv420p(progressive), 320x240, q=2-31, -2 kb/s, 15 fps, 15 tbr, 90k tbn, 1000k tbc Apr 13 18:28:56 raspberrypi3b homebridge[1038]: Stream mapping: Apr 13 18:28:56 raspberrypi3b homebridge[1038]: Stream #0:0 -> #0:0 (copy) Apr 13 18:28:56 raspberrypi3b homebridge[1038]: Press [q] to stop, [?] for help Apr 13 18:28:56 raspberrypi3b homebridge[1038]: [rtp @ 0x1060b20] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly Apr 13 18:28:57 raspberrypi3b homebridge[1038]: ffmpeg frame= 15 fps=0.0 q=-1.0 size= 4kB time=00:00:00.86 bitrate= 38.4kbits/s speed= 1.7x Apr 13 18:28:57 raspberrypi3b homebridge[1038]: ffmpeg frame= 23 fps= 23 q=-1.0 size= 6kB time=00:00:01.39 bitrate= 36.0kbits/s speed=1.38x Apr 13 18:28:58 raspberrypi3b homebridge[1038]: ffmpeg frame= 30 fps= 20 q=-1.0 size= 8kB time=00:00:01.86 bitrate= 35.3kbits/s speed=1.23x Apr 13 18:28:58 raspberrypi3b homebridge[1038]: ffmpeg frame= 38 fps= 19 q=-1.0 size= 10kB time=00:00:02.39 bitrate= 33.8kbits/s speed=1.18x Apr 13 18:28:59 raspberrypi3b homebridge[1038]: ffmpeg frame= 46 fps= 18 q=-1.0 size= 12kB time=00:00:02.93 bitrate= 33.6kbits/s speed=1.16x Apr 13 18:28:59 raspberrypi3b homebridge[1038]: ffmpeg frame= 53 fps= 17 q=-1.0 size= 14kB time=00:00:03.39 bitrate= 33.7kbits/s speed=1.12x Apr 13 18:29:00 raspberrypi3b homebridge[1038]: ffmpeg frame= 61 fps= 17 q=-1.0 size= 19kB time=00:00:03.93 bitrate= 40.3kbits/s speed=1.11x Apr 13 18:29:00 raspberrypi3b homebridge[1038]: ffmpeg frame= 68 fps= 17 q=-1.0 size= 21kB time=00:00:04.39 bitrate= 38.3kbits/s speed=1.08x Apr 13 18:29:01 raspberrypi3b homebridge[1038]: ffmpeg frame= 76 fps= 17 q=-1.0 size= 22kB time=00:00:04.93 bitrate= 36.8kbits/s speed=1.08x Apr 13 18:29:01 raspberrypi3b homebridge[1038]: ffmpeg frame= 84 fps= 17 q=-1.0 size= 24kB time=00:00:05.46 bitrate= 36.6kbits/s speed=1.08x

Supereg commented 5 years ago

Would be interesting which devices you are running. Also seems to be the same issue as in #50

milmber commented 5 years ago

Would be interesting which devices you are running. Also seems to be the same issue as in #50

Devices below:

I suspect the issue is that that the ffmpeg command arguments need to change to support newer iOS devices. Currently reviewing the homebridge-camera-ffmpeg code (where streaming works) to see what is missing.

Supereg commented 5 years ago

I was more interested what iDevices you are running, since it seems to only affect newer devices.

homebridge-camera-ffmpeg works for you?

milmber commented 5 years ago

I was more interested what iDevices you are running, since it seems to only affect newer devices.

iPhone X (iOS 12.2), Apple Watch (WatchOS 5.2), iPad Pro (iOS 12.2)

homebridge-camera-ffmpeg works for you?

Yes.

Below is the equivalent logs when streaming is successful.

Apr 15 19:59:19 raspberrypi3b homebridge[355]: [2019-4-15 19:59:19] [Camera-ffmpeg] Start streaming video from Pi 3B Camera with 1280x720@299kBit Apr 15 19:59:19 raspberrypi3b homebridge[355]: ffmpeg -re -r 30 -i http://raspberrypi3b.local:8081 -map 0:0 -vcodec h264_omx -pix_fmt yuv420p -r 30 -f rawvideo -tune zerolatency -vf scale=1280:720 -b:v 299k -bufsize 299k -payload_type 99 -ssrc 10091340 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params /Phf3DZDORLnTKc0VnfAuzH9gY6Ua41gtZsGeRVW srtp://10.0.1.18:49806?rtcpport=49806&localrtcpport=49806&pkt_size=1316 Apr 15 19:59:20 raspberrypi3b homebridge[355]: ffmpeg version 3.2.12-1~deb9u1+rpt1 Copyright (c) 2000-2018 the FFmpeg developers Apr 15 19:59:20 raspberrypi3b homebridge[355]: built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516 Apr 15 19:59:20 raspberrypi3b homebridge[355]: configuration: --prefix=/usr --extra-version='1~deb9u1+rpt1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-omx-rpi --enable-mmal --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --arch=armhf --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared Apr 15 19:59:20 raspberrypi3b homebridge[355]: libavutil 55. 34.101 / 55. 34.101 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libavcodec 57. 64.101 / 57. 64.101 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libavformat 57. 56.101 / 57. 56.101 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libavdevice 57. 1.100 / 57. 1.100 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libavfilter 6. 65.100 / 6. 65.100 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libavresample 3. 1. 0 / 3. 1. 0 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libswscale 4. 2.100 / 4. 2.100 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libswresample 2. 3.100 / 2. 3.100 Apr 15 19:59:20 raspberrypi3b homebridge[355]: libpostproc 54. 1.100 / 54. 1.100 Apr 15 19:59:21 raspberrypi3b homebridge[355]: Input #0, mpjpeg, from 'http://raspberrypi3b.local:8081': Apr 15 19:59:21 raspberrypi3b homebridge[355]: Duration: N/A, bitrate: N/A Apr 15 19:59:21 raspberrypi3b homebridge[355]: Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1024x768 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Apr 15 19:59:21 raspberrypi3b homebridge[355]: Codec AVOption tune (Tune the encoding to a specific scenario) specified for output file #0 (srtp://10.0.1.18:49806?rtcpport=49806&localrtcpport=49806&pkt_size=1316) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream. Apr 15 19:59:21 raspberrypi3b homebridge[355]: [swscaler @ 0x1ea81c0] deprecated pixel format used, make sure you did set range correctly Apr 15 19:59:21 raspberrypi3b homebridge[355]: [h264_omx @ 0x1e7a6f0] Using OMX.broadcom.video_encode Apr 15 19:59:21 raspberrypi3b homebridge[355]: Output #0, rtp, to 'srtp://10.0.1.18:49806?rtcpport=49806&localrtcpport=49806&pkt_size=1316': Apr 15 19:59:21 raspberrypi3b homebridge[355]: Metadata: Apr 15 19:59:21 raspberrypi3b homebridge[355]: encoder : Lavf57.56.101 Apr 15 19:59:21 raspberrypi3b homebridge[355]: Stream #0:0: Video: h264 (h264_omx), yuv420p, 1280x720 [SAR 3:4 DAR 4:3], q=2-31, 299 kb/s, 30 fps, 90k tbn, 30 tbc Apr 15 19:59:21 raspberrypi3b homebridge[355]: Metadata: Apr 15 19:59:21 raspberrypi3b homebridge[355]: encoder : Lavc57.64.101 h264_omx Apr 15 19:59:21 raspberrypi3b homebridge[355]: Stream mapping: Apr 15 19:59:21 raspberrypi3b homebridge[355]: Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (h264_omx)) Apr 15 19:59:21 raspberrypi3b homebridge[355]: Press [q] to stop, [?] for help Apr 15 19:59:22 raspberrypi3b homebridge[355]: frame= 4 fps=0.0 q=-0.0 size= 5kB time=00:00:00.06 bitrate= 575.2kbits/s speed=0.0987x Apr 15 19:59:23 raspberrypi3b homebridge[355]: frame= 7 fps=5.3 q=-0.0 size= 7kB time=00:00:00.16 bitrate= 330.6kbits/s speed=0.126x Apr 15 19:59:23 raspberrypi3b homebridge[355]: frame= 10 fps=5.2 q=-0.0 size= 9kB time=00:00:00.26 bitrate= 264.2kbits/s speed=0.138x Apr 15 19:59:24 raspberrypi3b homebridge[355]: frame= 13 fps=5.1 q=-0.0 size= 9kB time=00:00:00.36 bitrate= 202.8kbits/s speed=0.144x Apr 15 19:59:24 raspberrypi3b homebridge[355]: frame= 16 fps=5.0 q=-0.0 size= 16kB time=00:00:00.46 bitrate= 278.8kbits/s speed=0.147x

moritzmhmk commented 5 years ago

please use #50 for further discussion about streaming issues introduced by iOS 12.2