3

我在这里遇到了关于 ONVIF IP 摄像机规范的麻烦。我已经构建了一个程序,该程序能够使用该标准联系相机并向它们发送标准媒体/设备请求。

问题是我现在正试图通过 ONVIF 访问他们的 PTZ 容量,而对于我的两台摄像机,我只收到以下错误:

HTTP/1.1 400 Bad Request
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 741
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:ter="http://www.onvif.org/ver10/error">

<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<SOAP-ENV:Code>
<SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value>
<SOAP-ENV:Subcode>
<SOAP-ENV:Value>ter:Namespace</SOAP-ENV:Value>
</SOAP-ENV:Subcode>
</SOAP-ENV:Code>
<SOAP-ENV:Reason>
<SOAP-ENV:Text xml:lang="en">Namespace Error</SOAP-ENV:Text></SOAP-ENV:Reason>
<SOAP-ENV:Node>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Node>
<SOAP-ENV:Role>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Role>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

所以,命名空间错误。

问题是我通过 GetCapabilities() ONVIF 请求获得了摄像机的 onvif PTZ 命名空间(/onvif/ptz_service)。

对于我发送到两个 ONVIF 摄像机中的任何一个的任何 PTZ onvif 请求,问题都是相同的。

我已经尝试使用 ONVIF 查找软件让它们发送 PTZ 请求并查看它们是否有效,但我没有找到(这里有一个 ONVIF 设备管理器:http: //sourceforge.net/projects/onvifdm/但有没有实际的 PTZ 处理,除非问题来自我的相机)。

4

1 回答 1

7

我发现了这个问题,坦率地说,这令人失望:

我使用的是 ONVIF PTZ WSDL 文件的第二版 (ver20),因为第一版 (ver10) 被视为已弃用。

原来我几天前刚买的最近的 ONVIF 相机,带有最新的固件,仍在使用 ver10。

由于我无法使用 SvcUtil 使用 ver10 wsdl 生成代理类,因此我尝试使用 ver10 而不是 ver20 切换所有“http://www.onvif.org/ver20/ptz/wsdl”命名空间,并且它可以工作。目前。我希望它会继续与其他相机一起使用......

于 2011-08-16T09:48:33.847 回答