ONVIF和PTZ访问IP摄像机

use*_*419 2 soap web-services 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>
Run Code Online (Sandbox Code Playgroud)

所以,命名空间错误.

问题是我通过GetCapabilities()ONVIF请求获得了相机的onvif PTZ名称空间(/ onvif/ptz_service).

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

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

use*_*419 6

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

我使用的是ONVIF PTZ WSDL文件的第2版(ver20),因为第1版(ver10)被认为已弃用.

事实证明,即使最近刚刚购买的ONVIF相机,使用最新的固件,仍然使用ver10.

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