バージョンが 2.8.15 より大きい場合 (境界ではなく、v3 と v4 が機能しないだけです)、FFMPEG を使用するときに問題が発生します。ffprobe も機能しません。
バージョン3:
ffprobe -rtsp_transport tcp rtsp://user:password@ipaddress:5544/live0.264
戻り値:
[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
そして
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"
戻り値
[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!
バージョン4は、av_find_stream_infoの代わりにavformat_find_stream_infoが言及されている点を除いて同一です。
しかし...
バージョン 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"
戻り値:
[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
しかし、確実に機能し、正しい写真が返されます。
診断目的で、カメラから低解像度のストリームも出力しています: rtsp://user:password@ipaddress:5544/live1.264 すべてのバージョンで動作します!
違いを確認するために Steam 情報を確認する方法はありますか?
これは、RTSP ストリームが無効だが、v2 では機能する (v3 では拒否される) ためでしょうか? または、パラメータを変更することで修正できる他の問題があるのでしょうか?
少なくとも v3 でこれを動作させるためのガイダンスがあれば、大変助かります。
残念ながら、これらのカメラは PIR アラーム センサーのように見えるように作られており、イーサネット経由で電源が供給されるため、市場には他の選択肢がほとんどありません。
ありがとうございます。他に何か情報が必要であればお知らせください。
更新 2019年4月4日 17:20 ロンドン: カメラのストリーム設定をいろいろ試してみたところ、ストリームを 720p に設定すると高解像度のストリームが機能することがわかりました。しかし、1080p に戻すとすぐに再び失敗します。これが役に立つかどうかはわかりません。
答え1
カメラは SPS の一部である無効な VUI を生成しています。このエラーをより適切に処理するには、ffmpeg にパッチを適用するか、カメラの製造元がファームウェアの更新によってこのエラーを修正する必要があります。