Моя проблема заключается в следующем: я делаю RTSP-запросы, не используя аутентификацию, базовую c аутентификацию и дайджест-аутентификацию в зависимости от камеры, к которой я пытаюсь получить доступ. Некоторое время он работал нормально, но с недавнего времени при использовании дайджест-аутентификации я начал получать следующую ошибку :
* Trying 127.0.0.1:8554...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8554 (#0)
* Server auth using Digest with user 'ubnt'
> DESCRIBE rtsp://ubnt:administrator@127.0.0.1:8554/live.sdp RTSP/1.0
CSeq: 1
Accept: application/sdp
< RTSP/1.0 401 Unauthorized
< CSeq: 1
< WWW-Authenticate: Digest realm="GStreamer RTSP Server", nonce="3034e78651e4e61e"
< Server: GStreamer RTSP server
< Date: Sun, 12 Jan 2020 09:36:53 GMT
<
* Connection #0 to host 127.0.0.1 left intact
* Issue another request to this URL: 'rtsp://ubnt:administrator@127.0.0.1:8554/live.sdp'
* Protocol "rtsp" not supported or disabled in libcurl
* Closing connection -1
При переключении на базовую версию c auth на той же самой камере, я не получаю никакой ошибки Protocol "rtsp" not supported or disabled in libcurl
, и запросы DESCRIBE / SETUP работают как положено.
Я думал, что проблема связана с моим кодом (я выполнение запросов curl от go программы, которая использует привязки libcurl), но оказывается, что даже возврат к первому коммиту, использующему дайджест-аутентификацию, не решает проблему.
Сначала я подозревал ошибку в более новые версии libcurl, но я не смог подтвердить это в данный момент.
Кто-нибудь знает, в чем причина моей проблемы? Должен ли я отправить электронное письмо на адрес список рассылки libcurl об этом?
Ресурсы для получения дополнительной информации:
Кроме того, чтобы было ясно, я не Отключите протокол rtsp от libcurl, и он включается при запуске curl --version (но он также отлично работает с basi c auth, как указано выше):
curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2
Release-Date: 2019-03-27
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets
Последнее дополнительное примечание, я удалось воспроизвести эту проблему на Linux и MacOS, и многие пользователи моего проекта также сталкивались с такой же проблемой на различных дистрибутивах Linux.