繁体   English   中英

从Open ONVIF(网络视频接口论坛)设备录制的问题

[英]Issue with recording from the Open ONVIF (Network Video Interface Forum ) device

我正在开发网络视频接口论坛-Java项目,并遵循ONVIF应用程序员指南中描述的步骤。

我已经从ONVIF网站提供的wsdls生成了源代码。 我可以使用media.wsdl检索实时流URI。 现在我有一个录音问题。 我尝试过的代码如下:

RecordingService recording_ervice = new RecordingService();
RecordingPort record_port = recording_ervice.getRecordingPort();


BindingProvider bindingProvider = (BindingProvider) record_port;

// Add a security handler for the credentials
final Binding binding = bindingProvider.getBinding();
List<Handler> handlerList = binding.getHandlerChain();
if (handlerList == null) {
    handlerList = new ArrayList<Handler>();
}

handlerList.add(new RecordStream.SecurityHandler());
// binding.setHandlerChain(handlerList);

// Set the actual web services address instead of the mock service
Map<String, Object> requestContext = bindingProvider.getRequestContext();

requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://" + deviceip + "/onvif/media_service");
requestContext.put(BindingProvider.USERNAME_PROPERTY, user);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, pass);

Recordings recordings = record_port.getRecordings();

上面运行的代码给出了一个错误:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized

我也试过媒体服务,然后错误是:

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 405: Method Not Allowed

当您尝试使用媒体源时,由于服务器返回错误代码405,您显然请求了未经授权的操作。要么禁止使用该方法,要么使用该方法需要凭据。

至于Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized ,@ Sigismondo是关于大多数ip camera不支持它的事实是正确的。 您将需要一种替代录制方法(文字和双关语)来从ip摄像机录制。

您正在使用http://" + deviceip + "/onvif/media_service来访问录制服务,但这是一个media.wsdl服务。 因此,当您尝试在媒体服务上调用getRecordings时,您会收到错误,这似乎很正常。

recording.wsdl服务的url应为http://" + deviceip + "/onvif/recording_service

为了使corect URL到达录制服务,您应该从devicemgmt.wsdl服务的GetCapabilities方法请求它。

HTTP 405 - 不允许的资源通常发生在IIS中。 如果满足以下条件,则会发生此问题:

  • 您没有指定文件名。 例如,您没有指定http:// Server / Web / ...

  • 脚本对象模型(SOM)已启用。

  • 调用DTC事件。

因此,当启用SOM时,在页面中插入<form>标记,标记无效意味着它不包含任何操作。

暂无
暂无

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

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