我希望使用ONVIF设备管理器查看来自其他计算机的视频流。我在我的代码中实现了WS-discovery和WS-security,包括device,deviceIO和media wsdls,我的代码可以在这些wsdl文件中响应wsdl操作。但是Onvif DM没有任何要求启动视频流或获取流URL的请求。
我可以从Onvif DM看到这个屏幕: 以及此屏幕之前的所有请求均为:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/py2neo/ogm.py", line 442, in first
return self._object_class.wrap(super(GraphObjectSelection, self).first())
File "/usr/local/lib/python2.7/dist-packages/py2neo/ogm.py", line 344, in wrap
_ = getattr(inst, attr)
File "/usr/local/lib/python2.7/dist-packages/py2neo/ogm.py", line 90, in __get__
related[key] = RelatedObjects(cog.node, self.direction, self.relationship_type, self.related_class)
File "/usr/local/lib/python2.7/dist-packages/py2neo/ogm.py", line 135, in __init__
self.__relationship_pattern = "(a)<-[_:%s]-(b)" % cypher_escape(relationship_type)
File "/usr/local/lib/python2.7/dist-packages/py2neo/database/cypher.py", line 221, in cypher_escape
writer.write_identifier(identifier)
File "/usr/local/lib/python2.7/dist-packages/py2neo/database/cypher.py", line 78, in write_identifier
raise ValueError("Invalid identifier")
ValueError: Invalid identifier
我认为它与GetServices响应有关但我无法找到遗漏的内容。我的GetServices响应:
DeviceBindingService :: GetSystemDateAndTime
DeviceBindingService :: GetDeviceInformation
DeviceBindingService :: GetScopes
DeviceBindingService :: GetDNS
DeviceBindingService :: GetNetworkInterfaces
DeviceBindingService :: GetSystemDateAndTime
DeviceBindingService :: GetCapabilities
DeviceBindingService :: GetServices
DeviceBindingService :: GetCapabilities
MediaBindingService :: GetVideoSources
MediaBindingService :: GetProfiles
MediaBindingService :: GetProfiles
MediaBindingService :: GetSnapshotUri
MediaBindingService :: GetProfiles
MediaBindingService :: GetAudioSources
我怎样才能做到这一点?
答案 0 :(得分:1)
我遗漏的是GetVideoSourceConfiguration
和GetProfiles
回复之间的一些不一致。 - 感谢@mpromonet -
要在ONVIF设备管理器中显示实时视频流,我必须实现另外两个功能:
MediaBindingService :: GetStreamUri
MediaBindingService :: GetVideoSourceConfiguration