私は、ONVIFデバイスマネージャーを使用して別のコンピューターからビデオストリームを見たいと思っています。私はWS-discoveryとWS-securityを実装しました。device、deviceIO、media wsdlsを自分のコードに組み込み、私のコードはこれらのwsdlファイルのwsdl操作に応答することができます。しかし、Onvif DMがビデオストリームを開始したり、ストリームURLを取得したりする要求はありません。ビデオストリームをonvifデバイスマネージャーに表示
私はちょうどONVIFのDMからこの画面を見ることができます:この画面になるまで、 とすべての要求:
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
私はそれがGetServices応答に関連していると思いますが、私は何を見つけるために管理することができませんでした不足している。私のGetServicesレスポンス:
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:sizexenc="http://tempuri.org/sizexenc.xsd" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:sizeds="http://tempuri.org/sizeds.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:wsc="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:chan="http://schemas.microsoft.com/ws/2005/02/duplex" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wsdd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:tdn="http://www.onvif.org/ver10/network/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
<SOAP-ENV:Header>
<wsse:Security SOAP-ENV:mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">iZGOClWegnxwfuolWSakKIYyVRk=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">0bGB7IsWkEi0xhHgctiHixYHAAAAAA==</wsse:Nonce>
<wsu:Created>2016-09-19T15:12:49.009Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<tds:GetServicesResponse>
<tds:Service xsi:type="tds:Service">
<tds:Namespace>http://www.onvif.org/ver10/device/wsdl</tds:Namespace>
<tds:XAddr>http://******:1881/</tds:XAddr>
<tds:Version xsi:type="tt:OnvifVersion">
<tt:Major>2</tt:Major>
<tt:Minor>5</tt:Minor>
</tds:Version>
</tds:Service>
<tds:Service xsi:type="tds:Service">
<tds:Namespace>http://www.onvif.org/ver10/media/wsdl</tds:Namespace>
<tds:XAddr>http://******:1906/</tds:XAddr>
<tds:Version xsi:type="tt:OnvifVersion">
<tt:Major>2</tt:Major>
<tt:Minor>6</tt:Minor>
</tds:Version>
</tds:Service>
<tds:Service xsi:type="tds:Service">
<tds:Namespace>http://www.onvif.org/ver10/deviceIO/wsdl</tds:Namespace>
<tds:XAddr>http://******:1931/</tds:XAddr>
<tds:Version xsi:type="tt:OnvifVersion">
<tt:Major>2</tt:Major>
<tt:Minor>6</tt:Minor>
</tds:Version>
</tds:Service>
</tds:GetServicesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
どうすればいいですか?
をしても、名前空間 'httpで2つのサービスを返すように奇妙なよう:// WWW .onvif.org/ver10/media/wsdl'を 'GetServices'の答えで使用すると、' VideoSourceConfiguration'を含む 'GetProfiles'が問題になるでしょう。 – mpromonet
私は本当の名前空間で質問を編集し、VideoSourceConfigurationをgetprofilesレスポンスに追加すると、「profile1」という応答が画像のプロファイルリストから消えます。 GetVideoSourcesレスポンスには、ほぼ同じ情報が含まれています。 – rotringuser
GetVideoSourcesはソーストークンのみを提供し、GetProfilesは対応するVideoSourceConfigurationを提供する必要があります。たぶんVideoSourceConfigurationで一貫性のないSourceTokenを提供していますか? GetProfilesとGetVideoSources応答を追加すると役立ちます。 – mpromonet