Moin!
Ich habe hier eine IP-Kamera, die per "onvif" ansprechbar ist. Mit VLC bekomme ich ein wunderschönes Video über die URL: rtsp://192.168.178.61:554/onvif1
Dazu zeigt mir VLC folgendes an:
In Homebride auf einem Raspberry Pi 3B+ habe ich die Kamera über homebridge-camera-ffmpeg eingebunden (ffmpeg ist installiert):
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Kamera",
"videoConfig": {
"source": "-re -i rtsp://192.168.178.61:554/onvif1",
"maxFPS": 30,
"debug": true
}
}
]
Alles anzeigen
Mit dem maxFPS und auch mit anderen Parametern habe ich jetzt ziemlich oft herumgespielt, aber nichts wirklich lauffähiges hinbekommen.
Vorher hatte ich das Ganze auf einem Raspberry Pi Zero WH und dort gab es immerhin ein ruckelndes Video mit vielen Artefakten.
Hier sind die Debug-Meldungen von ffmpeg:
[11/26/2018, 9:05:45 PM] [Camera-ffmpeg] Start streaming video from Kamera with 1280x720@299kBit
ffmpeg -re -i rtsp://192.168.178.61:554/onvif1 -map 0:0 -vcodec libx264 -pix_fmt yuv420p -r 30 -f rawvideo -tune zerolatency -vf scale=1280:720 -b:v 299k -bufsize 299k -payload_type 99 -ssrc 14361734 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params5rNun75hg40rhIjY9a510JAokJyVdDniqbljPxOk srtp://192.168.178.77:53385?rtcpport=53385&localrtcpport=53385&pkt_size=1316
ffmpeg version 3.2.10-1~deb9u1+rpt2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516
configuration: --prefix=/usr --extra-version='1~deb9u1+rpt2' --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-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
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://192.168.178.61:554/onvif1':
Metadata:
title : H.264 Video, RtspServer_0.0.0.2
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x960, 15 fps, 25 tbr, 90k tbn, 30 tbc
Stream #0:1
: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
[libx264 @ 0x163f370] VBV maxrate unspecified, assuming CBR
[libx264 @ 0x163f370] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x163f370] profile High, level 3.1
Output #0, rtp, to 'srtp://192.168.178.77:53385?rtcpport=53385&localrtcpport=53385&pkt_size=1316':
Metadata:
title : H.264 Video, RtspServer_0.0.0.2
encoder : Lavf57.56.101
Stream #0:0: Video: h264 (libx264), yuv420p, 1280x720, q=-1--1, 299 kb/s, 30 fps, 90k tbn, 30 tbc
Metadata:
encoder : Lavc57.64.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/299000 buffer size: 299000 vbv_delay: -1
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
frame= 39 fps= 12 q=35.0 size= 43kB time=00:00:01.26 bitrate= 280.7kbits/s dup=38 drop=0 speed=0.387x
frame= 43 fps= 11 q=33.0 size= 47kB time=00:00:01.40 bitrate= 272.7kbits/s dup=39 drop=5 speed=0.357x
frame= 51 fps= 11 q=36.0 size= 50kB time=00:00:01.66 bitrate= 248.2kbits/s dup=43 drop=5 speed=0.37x
frame= 59 fps= 12 q=33.0 size= 56kB time=00:00:01.93 bitrate= 238.2kbits/s dup=47 drop=5 speed=0.377x
frame= 67 fps= 12 q=37.0 size= 62kB time=00:00:02.20 bitrate= 232.1kbits/s dup=51 drop=5 speed=0.386x
frame= 77 fps= 12 q=31.0 size= 72kB time=00:00:02.53 bitrate= 232.0kbits/s dup=56 drop=5 speed= 0.4x
frame= 85 fps= 12 q=35.0 size= 79kB time=00:00:02.80 bitrate= 231.4kbits/s dup=60 drop=5 speed= 0.4x
frame= 93 fps= 12 q=35.0 size= 86kB time=00:00:03.06 bitrate= 228.7kbits/s dup=64 drop=5 speed=0.404x
[rtsp @ 0x15c2730] max delay reached. need to consume packet
[rtsp @ 0x15c2730] RTP: missed 503 packets
[rtsp @ 0x15c2730] max delay reached. need to consume packet
[rtsp @ 0x15c2730] RTP: missed 51 packets
[rtsp @ 0x15c2730] max delay reached. need to consume packet
[rtsp @ 0x15c2730] RTP: missed 238 packets
[rtsp @ 0x15c2730] max delay reached. need to consume packetbitrate= 226.4kbits/s dup=67 drop=5 speed=0.393x
[rtsp @ 0x15c2730] RTP: missed 2 packets
[h264 @ 0x16cecd0] concealing 1803 DC, 1803 AC, 1803 MV errors in P frame
frame= 102 fps= 12 q=35.0 size= 94kB time=00:00:03.36 bitrate= 229.3kbits/s dup=69 drop=5 speed=0.382x
frame= 102 fps= 11 q=35.0 size= 94kB time=00:00:03.36 bitrate= 229.3kbits/s dup=69 drop=5 speed=0.361x
frame= 102 fps= 10 q=35.0 size= 94kB time=00:00:03.36 bitrate= 229.3kbits/s dup=69 drop=5 speed=0.342x
frame= 103 fps= 10 q=37.0 size= 94kB time=00:00:03.40 bitrate= 227.4kbits/s dup=69 drop=5 speed=0.329x
frame= 103 fps=9.5 q=37.0 size= 94kB time=00:00:03.40 bitrate= 227.4kbits/s dup=69 drop=5 speed=0.314x
frame= 107 fps=9.4 q=30.0 size= 98kB time=00:00:03.53 bitrate= 226.9kbits/s dup=71 drop=5 speed=0.311x
[rtsp @ 0x15c2730] max delay reached. need to consume packet
[rtsp @ 0x15c2730] RTP: missed 76 packets
[rtsp @ 0x15c2730] max delay reached. need to consume packet
[rtsp @ 0x15c2730] RTP: missed 79 packets
[h264 @ 0x177bbb0] concealing 3274 DC, 3274 AC, 3274 MV errors in P frame
frame= 107 fps=9.0 q=30.0 size= 98kB time=00:00:03.53 bitrate= 226.9kbits/s dup=71 drop=5 speed=0.298x
frame= 107 fps=8.7 q=30.0 size= 98kB time=00:00:03.53 bitrate= 226.9kbits/s dup=71 drop=5 speed=0.286x
frame= 107 fps=8.3 q=30.0 size= 98kB time=00:00:03.53 bitrate= 226.9kbits/s dup=71 drop=5 speed=0.275x
frame= 107 fps=8.0 q=30.0 size= 98kB time=00:00:03.53 bitrate= 226.9kbits/s dup=71 drop=5 speed=0.264x
frame= 107 fps=7.7 q=30.0 size= 98kB time=00:00:03.53 bitrate= 226.9kbits/s dup=71 drop=5 speed=0.255x
[11/26/2018, 9:06:18 PM] [Camera-ffmpeg] Snapshot from Kamera at 480x270
ffmpeg -re -i rtsp://192.168.178.61:554/onvif1 -t 1 -s 480x270 -f image2 -
Alles anzeigen
Ganz am Schluß holt er sich auch ein Standbild ohne Probleme. Das wird auch öfter einmal upgedatet.
Eine andere Kamera, die über die URL: http://192.168.178.57/media/?user=admin&pwd=&action=stream angesprochen wird, läuft hingegen auf demselben Pi ohne Probleme.
Dort sieht es im Log dann so aus:
[11/26/2018, 9:19:51 PM] [Camera-ffmpeg] Start streaming video from Cam with 1280x720@299kBit
ffmpeg -re -i http://192.168.178.57/media/?user=admin&pwd=&action=stream -map 0:0 -vcodec libx264 -pix_fmt yuv420p -r 10 -f rawvideo -tune zerolatency -vf scale=1280:720 -b:v 299k -bufsize 299k -payload_type 99 -ssrc 14372625 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params DlERASviagtnr1dVNWA1a0LdpQsThbfkb9YlAeqK srtp://192.168.178.77:56876?rtcpport=56876&localrtcpport=56876&pkt_size=1316
ffmpeg version 3.2.10-1~deb9u1+rpt2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516
configuration: --prefix=/usr --extra-version='1~deb9u1+rpt2' --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-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
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, mpjpeg, from 'http://192.168.178.57/media/?user=admin&pwd=&action=stream':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
[swscaler @ 0xc59e50] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0xc2caa0] VBV maxrate unspecified, assuming CBR
[libx264 @ 0xc2caa0] using SAR=1/1
[libx264 @ 0xc2caa0] using cpu capabilities: ARMv6 NEON
[libx264 @ 0xc2caa0] profile High, level 3.1
Output #0, rtp, to 'srtp://192.168.178.77:56876?rtcpport=56876&localrtcpport=56876&pkt_size=1316':
Metadata:
encoder : Lavf57.56.101
Stream #0:0: Video: h264 (libx264), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 299 kb/s,
10 fps, 90k tbn, 10 tbc
Metadata:
encoder : Lavc57.64.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/299000 buffer size: 299000 vbv_delay: -1
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame= 4 fps=0.0 q=35.0 size= 15kB time=00:00:00.30 bitrate= 409.9kbits/s dup=0 drop=1 speed=0.496x
frame= 5 fps=4.2 q=36.0 size= 16kB time=00:00:00.40 bitrate= 333.9kbits/s dup=0 drop=3 speed=0.337x
frame= 6 fps=3.5 q=34.0 size= 19kB time=00:00:00.50 bitrate= 308.4kbits/s dup=0 drop=4 speed=0.294x
frame= 7 fps=3.1 q=34.0 size= 21kB time=00:00:00.60 bitrate= 283.3kbits/s dup=0 drop=6 speed=0.264x
frame= 8 fps=2.7 q=33.0 size= 23kB time=00:00:00.70 bitrate= 264.0kbits/s dup=0 drop=7 speed=0.238x
frame= 9 fps=2.5 q=33.0 size= 25kB time=00:00:00.80 bitrate= 260.1kbits/s dup=0 drop=9 speed=0.225x
frame= 10 fps=2.4 q=32.0 size= 27kB time=00:00:00.90 bitrate= 248.1kbits/s dup=0 drop=11 speed=0.218x
frame= 12 fps=2.6 q=32.0 size= 32kB time=00:00:01.10 bitrate= 236.2kbits/s dup=0 drop=13 speed=0.235x
frame= 13 fps=2.5 q=31.0 size= 34kB time=00:00:01.20 bitrate= 229.8kbits/s dup=0 drop=15 speed=0.227x
frame= 14 fps=2.3 q=31.0 size= 36kB time=00:00:01.30 bitrate= 227.5kbits/s dup=0 drop=16 speed=0.218x
frame= 15 fps=2.3 q=31.0 size= 38kB time=00:00:01.40 bitrate= 222.6kbits/s dup=0 drop=18 speed=0.212x
frame= 17 fps=2.3 q=30.0 size= 42kB time=00:00:01.60 bitrate= 216.6kbits/s dup=0 drop=21 speed=0.218x
frame= 18 fps=2.3 q=30.0 size= 45kB time=00:00:01.70 bitrate= 215.0kbits/s dup=0 drop=22 speed=0.214x
frame= 19 fps=2.2 q=30.0 size= 47kB time=00:00:01.80 bitrate= 211.8kbits/s dup=0 drop=24 speed=0.21x
frame= 20 fps=2.2 q=29.0 size= 49kB time=00:00:01.90 bitrate= 210.4kbits/s dup=0 drop=26 speed=0.206x
frame= 22 fps=2.2 q=29.0 size= 54kB time=00:00:02.10 bitrate= 209.1kbits/s dup=0 drop=28 speed=0.21x
frame= 23 fps=2.2 q=29.0 size= 56kB time=00:00:02.20 bitrate= 207.3kbits/s dup=0 drop=30 speed=0.208x
frame= 24 fps=2.2 q=29.0 size= 58kB time=00:00:02.30 bitrate= 206.6kbits/s dup=0 drop=32 speed=0.207x
frame= 26 fps=2.2 q=28.0 size= 62kB time=00:00:02.50 bitrate= 204.4kbits/s dup=0 drop=34 speed=0.213x
frame= 27 fps=2.2 q=28.0 size= 65kB time=00:00:02.60 bitrate= 204.7kbits/s dup=0 drop=36 speed=0.212x
frame= 28 fps=2.2 q=28.0 size= 68kB time=00:00:02.70 bitrate= 204.9kbits/s dup=0 drop=37 speed=0.208x
frame= 29 fps=2.1 q=28.0 size= 70kB time=00:00:02.80 bitrate= 204.7kbits/s dup=0 drop=39 speed=0.206x
frame= 30 fps=2.1 q=28.0 size= 72kB time=00:00:02.90 bitrate= 204.5kbits/s dup=0 drop=41 speed=0.205x
frame= 32 fps=2.2 q=28.0 size= 78kB time=00:00:03.10 bitrate= 205.4kbits/s dup=0 drop=43 speed=0.211x
frame= 33 fps=2.1 q=27.0 size= 80kB time=00:00:03.20 bitrate= 205.2kbits/s dup=0 drop=45 speed=0.208x
frame= 34 fps=2.1 q=27.0 size= 83kB time=00:00:03.30 bitrate= 205.3kbits/s dup=0 drop=46 speed=0.207x
frame= 35 fps=2.1 q=27.0 size= 86kB time=00:00:03.40 bitrate= 206.6kbits/s dup=0 drop=48 speed=0.204x
frame= 37 fps=2.1 q=27.0 size= 91kB time=00:00:03.60 bitrate= 207.5kbits/s dup=0 drop=51 speed=0.208x
frame= 38 fps=2.1 q=27.0 size= 94kB time=00:00:03.70 bitrate= 208.4kbits/s dup=0 drop=52 speed=0.206x
frame= 39 fps=2.1 q=27.0 size= 97kB time=00:00:03.80 bitrate= 209.2kbits/s dup=0 drop=54 speed=0.205x
frame= 40 fps=2.1 q=27.0 size= 100kB time=00:00:03.90 bitrate= 210.5kbits/s dup=0 drop=56 speed=0.204x
Exiting normally, received signal 15.
[11/26/2018, 9:20:12 PM] [Camera-ffmpeg] Stopped streaming
[11/26/2018, 9:20:22 PM] [Camera-ffmpeg] Snapshot from Cam at 480x270
ffmpeg -re -i http://192.168.178.57/media/?user=admin&pwd=&action=stream -t 1 -s 480x270 -f image2 -
Alles anzeigen
Weiß hier vielleicht jemand einen Rat?
So komme ich irgendwie nicht weiter.
Danke!