繁体   English   中英

带有登录名和密码的开源URL

[英]Open Source URL with login and password

我正在准备一个Media Foundation会话,该会话将从网络安全摄像机读取视频流,然后将其显示在屏幕上并将其编码到磁盘。 我已经使用网络摄像头进行所有操作,现在我正尝试使用IMFSourceResolverCreateObjectFromURL()连接到网络摄像头。 问题是相机需要登录名和密码,并将URL格式设置为:

rtsp://login:password@IPaddr

仍然会导致“权限被拒绝”响应。

MSDN上有几页使用IMFNetCredentialManager提供用户名和密码,但是它不起作用,我仍然会拒绝权限。 使用WireShark,我可以看到摄像机对第一个MF连接尝试做出了“未经授权”的RTSP响应,然后MF放弃了,并且不检查凭据管理器,以失败告终。

我没有找到其他使用IMFNetCredentialManager示例。 从IP摄像机读取需要密码的视频流似乎是一项常见的任务,但我找不到在实践中完成该操作的证据。 是否可以使用Media Foundation或我错过了另一种方法?

完成研究后,这里是我得出的结论。

Windows Media Foundation为USB网络摄像头和基本流提供了良好(但不是彻底的)支持。 它只是一个基础。 诸如与网络IP摄像机进行通信之类的任何更高级的操作,程序员都需要大量额外的工作来完全实现其选择的协议,例如RTSP,HTTP或ONVIF。

我期望我可以为网络摄像头设置媒体会话,然后通过将源解析器与URL一起使用RTSP将源切换到网络摄像机。 如MSDN中所示,使用网络凭据管理器进行的授权不是Media Foundation提供的媒体源的一部分,这就是为什么未调用BeginGetCredentials()的原因。 这只是您需要使用自己的方案实现的示例。

因此,我的解决方案是放弃使用Media Foundation,而使用LEADTOOLS等提供的第三方库。这需要花钱,但是要创建所需的东西,我将花费更多的开发时间。

我希望这个答案可以帮助我在追逐这只兔子到深渊的整个过程中节省时间!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM