버전이 2.8.15보다 높을 때 FFMPEG를 사용하는 데 문제가 있습니다(경계가 아니라 v3과 v4가 작동하지 않는다는 것입니다). 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 모든 버전에서 작동합니다!
어쨌든 스팀 정보를 보고 차이점을 확인할 수 있나요?
RTSP 스트림이 유효하지 않지만 v2에서는 실행 가능하고 v3에서는 거부되었기 때문입니까? 아니면 매개변수를 변경하여 수정할 수 있는 다른 문제가 있나요?
최소한 v3에서 이것이 작동하도록 하는 방법에 대한 지침은 크게 감사하겠습니다.
안타깝게도 이 카메라는 PIR 경보 센서처럼 보이도록 제작되었으며 이더넷을 통해 전원이 공급되므로 실제로 시장에 다른 옵션이 없습니다.
감사합니다. 다른 정보가 필요하시면 알려주세요.
업데이트 2019년 4월 4일 17:20 런던: 카메라의 스트림 설정을 사용해 본 결과 스트림을 720p로 설정하면 고해상도 스트림이 작동하는 것으로 나타났습니다. 하지만 1080p로 다시 전환하자마자 다시 실패합니다. 이것이 도움이 되는지 확실하지 않습니다.
답변1
카메라가 SPS의 일부인 잘못된 VUI를 생성하고 있습니다. 이 오류를 보다 적절하게 처리하려면 ffmpeg를 패치해야 합니다. 그렇지 않으면 카메라 제조업체에서 펌웨어 업데이트를 통해 문제를 수정해야 합니다.