FFMPEG RTSP 피드에 대한 avformat_find_stream_info에서 코덱을 열지 못했습니다.

FFMPEG RTSP 피드에 대한 avformat_find_stream_info에서 코덱을 열지 못했습니다.

버전이 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를 패치해야 합니다. 그렇지 않으면 카메라 제조업체에서 펌웨어 업데이트를 통해 문제를 수정해야 합니다.

관련 정보