我在这里遇到了关于 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 处理,除非问题来自我的相机)。