Ich habe ein Problem bei der Verwendung von FFMPEG, wenn die Version höher als 2.8.15 ist (keine Beschränkung – es ist nur so, dass v3 und v4 nicht funktionieren). ffprobe funktioniert auch nicht.
Version 3:
ffprobe -rtsp_transport tcp rtsp://user:password@ipaddress:5544/live0.264
kehrt zurück:
[h264 @ 0xcd6e70] Overread VUI by 8 bits
[rtsp @ 0xcd3b10] Failed to open codec in av_find_stream_info
[NULL @ 0xcd6e70] Overread VUI by 8 bits
[h264 @ 0xcd6e70] Overread VUI by 8 bits
[rtsp @ 0xcd3b10] Could not find codec parameters for stream 0 (Video: h264 (High), none(progressive)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, rtsp, from 'rtsp://user:password@ipaddress:5544/live0.264':
Metadata:
title : Session Streamed by LIBZRTSP
comment : live0.264
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (High), none(progressive), 90k tbr, 90k tbn, 180k tbc
Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
Und
ffmpeg -f rtsp -rtsp_transport tcp -y -i "rtsp://user:password@ipaddress:5544/live0.264" -f image2 -vframes 1 -vsync 2 -pix_fmt yuvj420p "/home/james/photo_$(date +%Y.%m.%d_%H:%M:%S).jpg"
kehrt zurück
[h264 @ 0x1634680] Overread VUI by 8 bits
[rtsp @ 0x16312f0] Failed to open codec in av_find_stream_info
[NULL @ 0x1634680] Overread VUI by 8 bits
[h264 @ 0x1634680] Overread VUI by 8 bits
[rtsp @ 0x16312f0] Could not find codec parameters for stream 0 (Video: h264 (High), none(progressive)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://user:password@ipaddress:5544/live0.264':
Metadata:
title : Session Streamed by LIBZRTSP
comment : live0.264
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (High), none(progressive), 90k tbr, 90k tbn, 180k tbc
Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
[buffer @ 0x177e510] Unable to parse option value "0x0" as image size
[buffer @ 0x177e510] Unable to parse option value "-1" as pixel format
[buffer @ 0x177e510] Unable to parse option value "0x0" as image size
[buffer @ 0x177e510] Error setting option video_size to value 0x0.
[graph 0 input from stream 0:0 @ 0x177e490] Error applying options to the filter.
Error opening filters!
Version 4 ist identisch, außer dass hier avformat_find_stream_info statt av_find_stream_info erwähnt wird.
Aber...
Version 2.8.15:
ffmpeg -f rtsp -rtsp_transport tcp -y -i "rtsp://user:password@ipaddress:5544/live0.264" -f image2 -vframes 1 -vsync 2 -pix_fmt yuvj420p "/home/james/photo_$(date +%Y.%m.%d_%H:%M:%S).jpg"
kehrt zurück:
[h264 @ 0x2243e80] Overread VUI by 8 bits
Last message repeated 5 times
Invalid UE golomb code
Last message repeated 1 times
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://user:password@ipaddress:5544/live0.264':
Metadata:
title : Session Streamed by LIBZRTSP
comment : live0.264
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (High), yuvj420p(pc, bt709), 1920x1080, 10 fps, 10 tbr, 90k tbn, 180k tbc
Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[h264 @ 0x242bd60] Overread VUI by 8 bits
Last message repeated 2 times
Output #0, image2, to '/home/james/photo_2019.04.04_10:17:03.jpg':
Metadata:
title : Session Streamed by LIBZRTSP
comment : live0.264
encoder : Lavf56.40.101
Stream #0:0: Video: mjpeg, yuvj420p(pc), 1920x1080, q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc
Metadata:
encoder : Lavc56.60.100 mjpeg
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
Invalid UE golomb code
frame= 1 fps=0.0 q=9.5 Lsize=N/A time=00:00:00.10 bitrate=N/A
video:146kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Funktioniert aber auf jeden Fall und gibt das richtige Foto zurück.
Zu Diagnosezwecken habe ich auch einen Stream mit niedrigerer Auflösung aus der Kamera kommen: rtsp://user:password@ipaddress:5544/live1.264, das auf allen Versionen funktioniert!
Gibt es eine Möglichkeit, die Steam-Informationen aufzurufen, um den Unterschied zu erkennen?
Liegt es daran, dass der RTSP-Stream ungültig, aber für v2 funktionsfähig (und für v3 abgelehnt) ist? Oder ist etwas anderes falsch, das ich durch Ändern der Parameter beheben kann?
Ich wäre für jede Anleitung, wie dies zumindest auf Version 3 zum Laufen gebracht werden kann, sehr dankbar.
Leider sehen diese Kameras aus wie PIR-Alarmsensoren und werden über Ethernet mit Strom versorgt, sodass es auf dem Markt keine wirklich anderen Optionen gibt.
Danke. Sagen Sie mir Bescheid, wenn Sie weitere Informationen wünschen.
Update 04.04.2019 17:20 London: Ich habe mit den Stream-Einstellungen der Kamera herumgespielt und festgestellt, dass der Stream mit höherer Auflösung funktioniert, wenn ich den Stream auf 720p einstelle. Sobald ich aber wieder auf 1080p zurückschalte, funktioniert es wieder nicht. Ich bin nicht sicher, ob das hilfreich ist.
Antwort1
Die Kamera erzeugt eine ungültige VUI, die Teil des SPS ist. Sie müssen ffmpeg patchen, um diesen Fehler besser zu behandeln, oder der Kamerahersteller muss ihn über ein Firmware-Update beheben.