Tcp 确定RTSP服务器是否正在运行且需要身份验证
我知道端口554(通常是RTSP)在某个IP地址打开。我希望能够确定:Tcp 确定RTSP服务器是否正在运行且需要身份验证,tcp,video-streaming,rtsp,Tcp,Video Streaming,Rtsp,我知道端口554(通常是RTSP)在某个IP地址打开。我希望能够确定: 这真的是一个RTSP服务器吗 是否可以在不进行身份验证的情况下访问视频流 我也希望以尽可能轻的方式来做这件事。我不需要访问视频流 查看RTSP规范后,我意识到我可以简单地打开TCP套接字并发送以下命令: OPTIONS * RTSP/1.0<CRLF> CSeq: 1<CRLF> 选项*RTSP/1.0 CSeq:1 当我在许多服务器上尝试这种方法时,我发现有少数服务器响应了 RTSP/1.0
- 这真的是一个RTSP服务器吗
- 是否可以在不进行身份验证的情况下访问视频流
OPTIONS * RTSP/1.0<CRLF>
CSeq: 1<CRLF>
选项*RTSP/1.0
CSeq:1
当我在许多服务器上尝试这种方法时,我发现有少数服务器响应了
RTSP/1.0 200 OK
CSeq: 1
<a bunch of other stuff>
RTSP/1.0 200正常
CSeq:1
这是意料之中的。然而,我提出的大多数请求都超时了。这让我相信这些资源需要身份验证,否则我就做错了
我猜如果需要身份验证,大多数服务器都会响应401,所以我可能做错了什么。有什么想法吗?请参考RTSP协议的RFC2326: D.1.2已启用身份验证 为了从RTSP服务器访问媒体演示文稿 如果需要身份验证,客户端还必须能够 以下是:
* recognize the 401 status code;
* parse and include the WWW-Authenticate header;
* implement Basic Authentication and Digest Authentication.
如果我能拿到401,那就太好了。我知道我正在和一个RTSP服务器交谈,它正在启动和运行,并且需要身份验证。我的问题是,这种情况几乎从未发生过。我发现我什么也没收到,我的请求也超时了,这让我相信我做错了什么。我的方法中有什么不正确的地方吗?你可以试试()。此库具有openRTSPTM客户端应用程序。尝试使用“-v”选项连接到服务器,并跟踪所有RTSP消息。或者你也可以用vlc来试试,结果证明我的代码是错误的。我说我正在用终止所有命令,但我的代码只发送“\n”。当我开始使用“\r\n”时,情况开始好得多了。@SanderSmith*真的支持URL路径吗?海康威视表示,对我来说,这是一个糟糕的要求