2016-09-19 23 views
1

私は、ONVIFデバイスマネージャーを使用して別のコンピューターからビデオストリームを見たいと思っています。私はWS-discoveryとWS-securityを実装しました。device、deviceIO、media wsdlsを自分のコードに組み込み、私のコードはこれらのwsdlファイルのwsdl操作に応答することができます。しかし、Onvif DMがビデオストリームを開始したり、ストリームURLを取得したりする要求はありません。ビデオストリームをonvifデバイスマネージャーに表示

私はちょうどONVIFのDMからこの画面を見ることができます:この画面になるまで、 enter image description here とすべての要求:

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> 

どうすればいいですか?

+0

をしても、名前空間 'httpで2つのサービスを返すように奇妙なよう:// WWW .onvif.org/ver10/media/wsdl'を 'GetServices'の答えで使用すると、' VideoSourceConfiguration'を含む 'GetProfiles'が問題になるでしょう。 – mpromonet

+0

私は本当の名前空間で質問を編集し、VideoSourceConfigurationをgetprofilesレスポンスに追加すると、「profile1」という応答が画像のプロファイルリストから消えます。 GetVideoSourcesレスポンスには、ほぼ同じ情報が含まれています。 – rotringuser

+2

GetVideoSourcesはソーストークンのみを提供し、GetProfilesは対応するVideoSourceConfigurationを提供する必要があります。たぶんVideoSourceConfigurationで一貫性のないSourceTokenを提供していますか? GetProfilesとGetVideoSources応答を追加すると役立ちます。 – mpromonet

答えて

1

私が紛失しているものはGetVideoSourceConfigurationGetProfilesというレスポンスの間にいくつかの矛盾がありました。 @ mpromonet-

にONVIFデバイスマネージャでのライブビデオストリームを表示する-thanks、私は2つの以上の機能を実装する必要がありました:

MediaBindingService :: GetStreamUri 
MediaBindingService :: GetVideoSourceConfiguration 
関連する問題