Rtsp ошибка 451

Синтаксис строки состояния (Status-Line):

Status-Line = RTSP-Version SP Status-Code SP Reason-Phrase CRLF

Код состояния 451 (Parameter Not Understood — Параметр не понят) информирует о том, что Получатель запроса не поддерживает один или несколько параметров, содержащихся в запросе. При возврате этого сообщения об ошибке агент ДОЛЖЕН вернуть тело сообщения, содержащее ошибочные параметры. (раздел 17.4.15 из RFC 7826)

Остальные коды состояний ответа перечислены в таблице.

Ссылки на документы

Скачать оригинальный документ на английском языке RFC 7826 — Real-Time Streaming Protocol Version 2.0

Читать полную версию документа на русском языке RFC 7826 — Потоковый протокол в реальном времени (RTSP), версия 2.0

Не забывайте про поля общих заголовков RTSP 2.0, которые могут применяться как в запросах так и в ответах.

Помните о полях заголовков запросов RTSP 2.0. Изучите методы RTSP 2.0 с которыми применяются коды состояний ответа.

RTSP 2.0 | Поле общего заголовка Scale

Общие заголовки RTSP 2.0 — это заголовки, которые могут использоваться как в запросах, так и в ответах. Общие заголовки RTSP 2.0 перечислены в таблице […]

RTSP 2.0 | Заголовок ответа Proxy-Authenticate

Поле заголовка ответа «Proxy-Authenticate» ДОЛЖНО быть включено как часть ответа 407 (Proxy Authentication Required). Поле-значение состоит из запроса, который указывает схему аутентификации […]

RFC 7320 | URI Дизайн и Владение

Аннотация В разделе 1.1.1 RFC 3986 синтаксис URI определяется как «федеративная и расширяемая система именования, в которой спецификация каждой «схемы» может дополнительно […]

RTSP 2.0 | Поле общего заголовка Speed

Общие заголовки RTSP 2.0 — это заголовки, которые могут использоваться как в запросах, так и в ответах. Общие заголовки RTSP 2.0 перечислены в таблице […]

Hello,

I am upgrading a project from Gstreamer 1.16.2 to the latest and greatest. However, I am using rtsp streams integrated via Milestone Xprotect (popular VMS) ONVIF bridge plugin (this plugin exposes onvif enabled rtsp urls). I’ve noticed that these streams are now failing during this upgrade. This issue I believe helped remedy some other issues i saw with /vod/ rtsp streams, but with live rtsp streams (which playback in vlc and older gst versions fine), I am now receiving a fatal Error (451): Parameter Not Understood error. I’ve attached logs of the following command in both versions.

GST_DEBUG=rtspsrc:6 gst-launch-1.0 rtspsrc location=»rtsp://username:pw@192.168.7.235:554/live/96813dab-2c0d-4308-b031-4fb1f668d9cf» protocols=tcp ! decodebin ! fakesink > rtspsrc_issue.log 2>&1

Since this requires a milestone server to test, I realize it may be difficult to address. I’m happy to coordinate with some temporarily if they’d like to test on my server (I can expose a public IP to a specific person for a short window if needed).

Gst 1.16.2: rtspsrc_issue_gst_1_16.log

Latest build of main branch as of last Friday: rtspsrc_issue.log

Thanks
Matt


0

1

Всем доброго времени суток.
Есть система видеонаблюдения на Ubuntu 14.04 и zoneminder. Подцеплено 14 китайских IP камер.
Три камеры имеют поток вида:

rtsp://192.168.2.xxx/live0.264

Ещё три камеры — поток:

rtsp://192.168.2.xxx:8554/live0.264

И восемь камер с потоком:

rtsp://192.168.2.xxx:554/user=admin&password=tlJwpbo6&channel=1&stream=0.sdp?real_stream

Так вот, первые шесть камер показывают видео в ZM, а последние восемь не показывают. Просто пустой квадрат.
Почему?
Помогите, пожалуйста, разобраться.
Кстати, в VLC потоки всех трёх видов прекрасно работают.

If the stream on the link does not exist, creating VideoCapture object on that link would still be successful but you will not be able to process on the object.

You code’s control flow just might be going in and checking if (cap.isOpened()== True) but there is no else block to handle what would happen if if (cap.isOpened() != True). So just try adding an else block to display the error message.

for x in feedList:

    print("[INFO] Checking Link..." + x)

    cap=cv2.VideoCapture(x)

    try:   
        # Check if camera opened successfully
        if (cap.isOpened()== True): 
            streamlink = x
            print("[INFO] FOUND! Stream Link..." + x)
            break
        # Else is important to display error message on the screen if can.isOpened returns false
        else
            print("[NO STREAM]" + x)
    except socket.error:
        print("[NO STREAM]" + x)
    except:
        print("[FAILED]" + x)
        pass

If this doesn’t work: following might solve the issue:

One of the main issues is that every camera manufacturer uses their
own protocol (RTSP URI formatting). Finding the correct URL for your
IP-camera can be frustrating and time-intensive. When found you can
try to open it with VLC, and afterwards with Kerberos.io.

Depending on the format of the RTSP URI things can go wrong, for
example when using a format like above. To solve the problem you’ll
need to add an question mark «?» at the end of the url.

As example original link might be:

rtsp://192.168.2.109:554/user=admin&password=mammaloe&channel=1&stream=0.sdp

So with ? it would be:

rtsp://192.168.2.109:554/user=admin&password=mammaloe&channel=1&stream=0.sdp?

Source

Thanks for the reply. With the ffplay test I get the following result

fplay version n4.4 Copyright (c) 2003-2021 the FFmpeg developers
built with gcc 10.2.0 (GCC)
configuration: —prefix=/usr —disable-debug —disable-static —disable-stripping —enable-amf —enable-avisynth —enable-cuda-llvm —enable-lto —enable-fontconfig —enable-gmp —enable-gnutls —enable-gpl —enable-ladspa —enable-libaom —enable-libass —enable-libbluray —enable-libdav1d —enable-libdrm —enable-libfreetype —enable-libfribidi —enable-libgsm —enable-libiec61883 —enable-libjack —enable-libmfx —enable-libmodplug —enable-libmp3lame —enable-libopencore_amrnb —enable-libopencore_amrwb —enable-libopenjpeg —enable-libopus —enable-libpulse —enable-librav1e —enable-librsvg —enable-libsoxr —enable-libspeex —enable-libsrt —enable-libssh —enable-libtheora —enable-libv4l2 —enable-libvidstab —enable-libvmaf —enable-libvorbis —enable-libvpx —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxcb —enable-libxml2 —enable-libxvid —enable-libzimg —enable-nvdec —enable-nvenc —enable-shared —enable-version3
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
rstp://192.168.1.7:554/user=admin: Protocol not found
nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
^C
[1] Done ffplay rstp://192.168.1.7:554/user=admin

Further research shows that ffplay (and ffmpeg) view rstp as a demuxer and need more command line options. I tried the following

ffplay -rtsp_transport tcp -f rtsp rstp://192.168.1.XX:554/user=admin&password=XXXXXXXXXXXX&channel=1&stream=0.sdp?real_stream—rtp-caching=100

This returns
ffplay version n4.4 Copyright (c) 2003-2021 the FFmpeg developers
built with gcc 10.2.0 (GCC)
configuration: —prefix=/usr —disable-debug —disable-static —disable-stripping —enable-amf —enable-avisynth —enable-cuda-llvm —enable-lto —enable-fontconfig —enable-gmp —enable-gnutls —enable-gpl —enable-ladspa —enable-libaom —enable-libass —enable-libbluray —enable-libdav1d —enable-libdrm —enable-libfreetype —enable-libfribidi —enable-libgsm —enable-libiec61883 —enable-libjack —enable-libmfx —enable-libmodplug —enable-libmp3lame —enable-libopencore_amrnb —enable-libopencore_amrwb —enable-libopenjpeg —enable-libopus —enable-libpulse —enable-librav1e —enable-librsvg —enable-libsoxr —enable-libspeex —enable-libsrt —enable-libssh —enable-libtheora —enable-libv4l2 —enable-libvidstab —enable-libvmaf —enable-libvorbis —enable-libvpx —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxcb —enable-libxml2 —enable-libxvid —enable-libzimg —enable-nvdec —enable-nvenc —enable-shared —enable-version3
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
[rtsp @ 0x7f51a4000c80] method DESCRIBE failed: 401 Unauthorized0
rstp://192.168.1.7:554/user=admin: Server returned 401 Unauthorized (authorization failed)

So I am getting somewhere. Where can I put the ffmpeg arguments in cctv-viewer?

Понравилась статья? Поделить с друзьями:
  • Rto 500 alutech ошибка e2
  • Rtlihvs dll код ошибки 126
  • Rtl70 bpl ошибка
  • Rtl60 bpl ошибка
  • Rtl210 bpl ошибка