ONVIF和PTZ访问IP摄像机

时间:2011-08-11 09:42:26

标签: web-services soap onvif

我在这里遇到有关ONVIF IP Camera规范的问题。我已经构建了一个程序,可以使用标准联系摄像机并向它们发送标准媒体/设备请求。

问题是我现在正试图通过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处理,除非问题来自我的相机)。

1 个答案:

答案 0 :(得分:6)

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

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

事实证明,最近我刚刚购买的ONVIF相机,使用最新的固件,仍在使用ver10。

由于我不能使用verv wsdl使用SvcUtil生成我的代理类,我尝试用ver10而不是ver20切换所有“http://www.onvif.org/ver20/ptz/wsdl”命名空间,并且有用。目前。我希望它能继续与其他相机合作......