我的问题如下,根据我要访问的摄像机,我不使用身份验证,基本身份验证和摘要身份验证来发出RTSP请求。它已经运行了一段时间,但是最近以来当使用摘要身份验证时,我开始出现以下错误:
* 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:[email protected]: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:[email protected]:8554/live.sdp'
* Protocol "rtsp" not supported or disabled in libcurl
* Closing connection -1
虽然在完全相同的相机上切换到基本身份验证时,我没有收到任何Protocol "rtsp" not supported or disabled in libcurl
错误,并且DESCRIBE / SETUP请求按预期方式工作。
我以为问题出在我的代码中(我正在从使用libcurl绑定的go程序发出卷曲请求,但是事实证明,即使还原到使用摘要身份验证的第一个提交也无法解决问题。 。
起初我怀疑是较新的libcurl版本中的错误,但目前我还无法确认。
任何人都不知道这是我的问题的原因吗?是否应该向libcurl邮件列表发送有关此问题的电子邮件?
更多信息资源:
docker run --rm -e RTSP_AUTHENTICATION_METHOD="digest" -p 8554:8554 ullaakut/rtspatt
在使用RTSPATT生成的虚拟RTSP服务器上重现此问题>另外,请注意,我没有从libcurl禁用rtsp协议,并且在运行curl --version时启用了它(但是,如前所述,它在基本身份验证下也可以正常工作:]
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的各种发行版上也遇到了相同的问题。
我的问题如下,根据我要访问的摄像机,我不使用身份验证,基本身份验证和摘要身份验证来发出RTSP请求。对于...],它一直运行良好,...
这很可能是当前libcurl中损坏的RTSP身份验证支持。有current PR可以解决此问题,但已停顿了(“比我想的还要复杂”