请求 URL  http://192.168.11.61:80/onvif/device_service

请求参数 GetCapabilities :

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">

<s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope">

<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

<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">xGclBsZI8XXZMMdJFLRQezGU6Ew=</wsse:Password>

<wsse:Nonce>kajtS3gI++y6imPiP0LCFQ==</wsse:Nonce>

<wsu:Created>2019-06-26T02:14:29Z</wsu:Created>

</wsse:UsernameToken>

</wsse:Security>

</s:Header>

<soap:Body>

<tds:GetServiceCapabilities />

</soap:Body>

</soap:Envelope>

得到回复GetCapabilitiesResponse:

<?xml version="1.0" encoding="UTF-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"  xmlns:tds="http://www.onvif.org/ver10/device/wsdl"  xmlns:tt="http://www.onvif.org/ver10/schema"  >

<soap:Body>

<tds:GetCapabilitiesResponse>

<tds:Capabilities>

<tt:Device>

<tt:XAddr>http://192.168.11.61:80/onvif/device_service</tt:XAddr>

<tt:Network>

<tt:IPFilter>false</tt:IPFilter>

<tt:ZeroConfiguration>false</tt:ZeroConfiguration>

<tt:IPVersion6>true</tt:IPVersion6>

<tt:DynDNS>true</tt:DynDNS>

</tt:Network>

<tt:System>

<tt:DiscoveryResolve>false</tt:DiscoveryResolve>

<tt:DiscoveryBye>true</tt:DiscoveryBye>

<tt:RemoteDiscovery>false</tt:RemoteDiscovery>

<tt:SystemBackup>false</tt:SystemBackup>

<tt:SystemLogging>true</tt:SystemLogging>

<tt:FirmwareUpgrade>false</tt:FirmwareUpgrade>

<tt:SupportedVersions>

<tt:Major>2</tt:Major>

<tt:Minor>20</tt:Minor>

</tt:SupportedVersions>

<tt:Extension>

<tt:HttpFirmwareUpgrade>false</tt:HttpFirmwareUpgrade>

<tt:HttpSystemBackup>false</tt:HttpSystemBackup>

<tt:HttpSystemLogging>false</tt:HttpSystemLogging>

<tt:HttpSupportInformation>false</tt:HttpSupportInformation>

</tt:Extension>

</tt:System>

<tt:IO>

<tt:InputConnectors>0</tt:InputConnectors>

<tt:RelayOutputs>0</tt:RelayOutputs>

</tt:IO>

<tt:Security>

<tt:TLS1.1>false</tt:TLS1.1>

<tt:TLS1.2>false</tt:TLS1.2>

<tt:OnboardKeyGeneration>false</tt:OnboardKeyGeneration>

<tt:AccessPolicyConfig>false</tt:AccessPolicyConfig>

<tt:X.509Token>false</tt:X.509Token>

<tt:SAMLToken>false</tt:SAMLToken>

<tt:KerberosToken>false</tt:KerberosToken>

<tt:RELToken>false</tt:RELToken>

<tt:Extension>

<tt:TLS1.0>false</tt:TLS1.0>

</tt:Extension>

</tt:Security>

</tt:Device>

<tt:Events>

<tt:XAddr>http://192.168.11.61:80/onvif/event_service</tt:XAddr>

<tt:WSSubscriptionPolicySupport>true</tt:WSSubscriptionPolicySupport>

<tt:WSPullPointSupport>true</tt:WSPullPointSupport>

<tt:WSPausableSubscriptionManagerInterfaceSupport>false</tt:WSPausableSubscriptionManagerInterfaceSupport>

</tt:Events>

<tt:Imaging>

<tt:XAddr>http://192.168.11.61:80/onvif/imaging_service</tt:XAddr>

</tt:Imaging>

<tt:Media>

<tt:XAddr>http://192.168.11.61:80/onvif/media_service</tt:XAddr>

<tt:StreamingCapabilities>

<tt:RTPMulticast>true</tt:RTPMulticast>

<tt:RTP_TCP>false</tt:RTP_TCP>

<tt:RTP_RTSP_TCP>true</tt:RTP_RTSP_TCP>

</tt:StreamingCapabilities>

<tt:Extension>

<tt:ProfileCapabilities>

<tt:MaximumNumberOfProfiles>19</tt:MaximumNumberOfProfiles>

</tt:ProfileCapabilities>

</tt:Extension>

</tt:Media>

<tt:PTZ>

<tt:XAddr>http://192.168.11.61:80/onvif/ptz_service</tt:XAddr>

</tt:PTZ>

<tt:Extension>

<tt:Recording>

<tt:XAddr>http://192.168.11.61:80/onvif/recording_service</tt:XAddr>

<tt:ReceiverSource>true</tt:ReceiverSource>

<tt:MediaProfileSource>true</tt:MediaProfileSource>

<tt:DynamicRecordings>false</tt:DynamicRecordings>

<tt:DynamicTracks>0</tt:DynamicTracks>

<tt:MaxStringLength>64</tt:MaxStringLength>

</tt:Recording>

<tt:Search>

<tt:XAddr>http://192.168.11.61:80/onvif/search_service</tt:XAddr>

<tt:MetadataSearch>false</tt:MetadataSearch>

</tt:Search>

<tt:Replay>

<tt:XAddr>http://192.168.11.61:80/onvif/replay_service</tt:XAddr>

</tt:Replay>

<tt:Receiver>

<tt:XAddr>http://192.168.11.61:80/onvif/receiver_service</tt:XAddr>

<tt:RTP_Multicast>true</tt:RTP_Multicast>

<tt:RTP_TCP>true</tt:RTP_TCP>

<tt:RTP_RTSP_TCP>true</tt:RTP_RTSP_TCP>

<tt:SupportedReceivers>5</tt:SupportedReceivers>

<tt:MaximumRTSPURILength>255</tt:MaximumRTSPURILength>

</tt:Receiver>

</tt:Extension>

</tds:Capabilities>

</tds:GetCapabilitiesResponse>

</soap:Body>

</soap:Envelope>

从回复中解析得到 Media service  URL:

<tt:Media>

<tt:XAddr>http://192.168.11.61:80/onvif/media_service</tt:XAddr>

请求 通过http://192.168.11.61:80/onvif/media_service

请求:GetProfiles

发送请求内容:

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">

<s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope">

<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

<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">SZn5dATgbcb2G5V+8OnSnAnUh/g=</wsse:Password>

<wsse:Nonce>MH1ckmewXb55kmOKAcRprw==</wsse:Nonce>

<wsu:Created>2019-06-26T02:04:37Z</wsu:Created>

</wsse:UsernameToken>

</wsse:Security>

</s:Header>

<soap:Body>

<trt:GetProfiles />

</soap:Body>

</soap:Envelope>

得到回复GetProfilesResponse:

<?xml version="1.0" encoding="UTF-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"  xmlns:trt="http://www.onvif.org/ver10/media/wsdl"  xmlns:tt="http://www.onvif.org/ver10/schema" >

<soap:Body>

<trt:GetProfilesResponse>

<trt:Profiles token="ProfileToken001" fixed="true">

<tt:Name>ProfileName001</tt:Name>

<tt:VideoSourceConfiguration token="VideoSourceConfigurationToken001">

<tt:Name>VideoSourceConfigurationName001</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>VideoSourceToken001</tt:SourceToken>

<tt:Bounds x="0" y="0" width="1280" height="720"/>

</tt:VideoSourceConfiguration>

<tt:AudioSourceConfiguration token="AudioSourceConfigurationToken001">

<tt:Name>AudioSourceConfigurationName001</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>AudioSourceToken001</tt:SourceToken>

</tt:AudioSourceConfiguration>

<tt:VideoEncoderConfiguration token="VideoEncoderConfigurationToken001">

<tt:Name>VideoEncoderConfigurationName001</tt:Name>

<tt:UseCount>1</tt:UseCount>

<tt:Encoding>H264</tt:Encoding>

<tt:Resolution>

<tt:Width>1280</tt:Width>

<tt:Height>720</tt:Height>

</tt:Resolution>

<tt:Quality>4</tt:Quality>

<tt:RateControl>

<tt:FrameRateLimit>25</tt:FrameRateLimit>

<tt:EncodingInterval>1</tt:EncodingInterval>

<tt:BitrateLimit>2048</tt:BitrateLimit>

</tt:RateControl>

<tt:H264>

<tt:GovLength>25</tt:GovLength>

<tt:H264Profile>Baseline</tt:H264Profile>

</tt:H264>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:VideoEncoderConfiguration>

<tt:AudioEncoderConfiguration token="AudioEncoderConfigurationToken001">

<tt:Name>AudioEncoderConfigurationName001</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:Encoding>G711</tt:Encoding>

<tt:Bitrate>64</tt:Bitrate>

<tt:SampleRate>8</tt:SampleRate>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:AudioEncoderConfiguration>

<tt:PTZConfiguration token="PTZConfigurationToken001">

<tt:Name>PTZConfigurationName001</tt:Name>

<tt:UseCount>0</tt:UseCount>

<tt:NodeToken>PTZNodeToken001</tt:NodeToken>

<tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>

<tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>

<tt:DefaultPTZTimeout>PT60S</tt:DefaultPTZTimeout>

</tt:PTZConfiguration>

</trt:Profiles>

<trt:Profiles token="ProfileToken002" fixed="true">

<tt:Name>ProfileName002</tt:Name>

<tt:VideoSourceConfiguration token="VideoSourceConfigurationToken002">

<tt:Name>VideoSourceConfigurationName002</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>VideoSourceToken002</tt:SourceToken>

<tt:Bounds x="0" y="0" width="1280" height="720"/>

</tt:VideoSourceConfiguration>

<tt:AudioSourceConfiguration token="AudioSourceConfigurationToken002">

<tt:Name>AudioSourceConfigurationName002</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>AudioSourceToken002</tt:SourceToken>

</tt:AudioSourceConfiguration>

<tt:VideoEncoderConfiguration token="VideoEncoderConfigurationToken002">

<tt:Name>VideoEncoderConfigurationName002</tt:Name>

<tt:UseCount>1</tt:UseCount>

<tt:Encoding>H264</tt:Encoding>

<tt:Resolution>

<tt:Width>1280</tt:Width>

<tt:Height>720</tt:Height>

</tt:Resolution>

<tt:Quality>4</tt:Quality>

<tt:RateControl>

<tt:FrameRateLimit>30</tt:FrameRateLimit>

<tt:EncodingInterval>1</tt:EncodingInterval>

<tt:BitrateLimit>2048</tt:BitrateLimit>

</tt:RateControl>

<tt:H264>

<tt:GovLength>25</tt:GovLength>

<tt:H264Profile>Baseline</tt:H264Profile>

</tt:H264>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:VideoEncoderConfiguration>

<tt:AudioEncoderConfiguration token="AudioEncoderConfigurationToken002">

<tt:Name>AudioEncoderConfigurationName002</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:Encoding>G711</tt:Encoding>

<tt:Bitrate>64</tt:Bitrate>

<tt:SampleRate>8</tt:SampleRate>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:AudioEncoderConfiguration>

<tt:PTZConfiguration token="PTZConfigurationToken002">

<tt:Name>PTZConfigurationName002</tt:Name>

<tt:UseCount>0</tt:UseCount>

<tt:NodeToken>PTZNodeToken002</tt:NodeToken>

<tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>

<tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>

<tt:DefaultPTZTimeout>PT60S</tt:DefaultPTZTimeout>

</tt:PTZConfiguration>

</trt:Profiles>

<trt:Profiles token="ProfileToken010" fixed="true">

<tt:Name>ProfileName010</tt:Name>

<tt:VideoSourceConfiguration token="VideoSourceConfigurationToken001">

<tt:Name>VideoSourceConfigurationName001</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>VideoSourceToken001</tt:SourceToken>

<tt:Bounds x="0" y="0" width="1280" height="720"/>

</tt:VideoSourceConfiguration>

<tt:AudioSourceConfiguration token="AudioSourceConfigurationToken001">

<tt:Name>AudioSourceConfigurationName001</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>AudioSourceToken001</tt:SourceToken>

</tt:AudioSourceConfiguration>

<tt:VideoEncoderConfiguration token="VideoEncoderConfigurationToken010">

<tt:Name>VideoEncoderConfigurationName010</tt:Name>

<tt:UseCount>1</tt:UseCount>

<tt:Encoding>H264</tt:Encoding>

<tt:Resolution>

<tt:Width>352</tt:Width>

<tt:Height>288</tt:Height>

</tt:Resolution>

<tt:Quality>4</tt:Quality>

<tt:RateControl>

<tt:FrameRateLimit>25</tt:FrameRateLimit>

<tt:EncodingInterval>1</tt:EncodingInterval>

<tt:BitrateLimit>512</tt:BitrateLimit>

</tt:RateControl>

<tt:H264>

<tt:GovLength>25</tt:GovLength>

<tt:H264Profile>Baseline</tt:H264Profile>

</tt:H264>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:VideoEncoderConfiguration>

<tt:AudioEncoderConfiguration token="AudioEncoderConfigurationToken001">

<tt:Name>AudioEncoderConfigurationName001</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:Encoding>G711</tt:Encoding>

<tt:Bitrate>64</tt:Bitrate>

<tt:SampleRate>8</tt:SampleRate>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:AudioEncoderConfiguration>

<tt:PTZConfiguration token="PTZConfigurationToken001">

<tt:Name>PTZConfigurationName001</tt:Name>

<tt:UseCount>0</tt:UseCount>

<tt:NodeToken>PTZNodeToken001</tt:NodeToken>

<tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>

<tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>

<tt:DefaultPTZTimeout>PT60S</tt:DefaultPTZTimeout>

</tt:PTZConfiguration>

</trt:Profiles>

<trt:Profiles token="ProfileToken011" fixed="true">

<tt:Name>ProfileName011</tt:Name>

<tt:VideoSourceConfiguration token="VideoSourceConfigurationToken002">

<tt:Name>VideoSourceConfigurationName002</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>VideoSourceToken002</tt:SourceToken>

<tt:Bounds x="0" y="0" width="1280" height="720"/>

</tt:VideoSourceConfiguration>

<tt:AudioSourceConfiguration token="AudioSourceConfigurationToken002">

<tt:Name>AudioSourceConfigurationName002</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:SourceToken>AudioSourceToken002</tt:SourceToken>

</tt:AudioSourceConfiguration>

<tt:VideoEncoderConfiguration token="VideoEncoderConfigurationToken011">

<tt:Name>VideoEncoderConfigurationName011</tt:Name>

<tt:UseCount>1</tt:UseCount>

<tt:Encoding>H264</tt:Encoding>

<tt:Resolution>

<tt:Width>352</tt:Width>

<tt:Height>288</tt:Height>

</tt:Resolution>

<tt:Quality>4</tt:Quality>

<tt:RateControl>

<tt:FrameRateLimit>30</tt:FrameRateLimit>

<tt:EncodingInterval>1</tt:EncodingInterval>

<tt:BitrateLimit>512</tt:BitrateLimit>

</tt:RateControl>

<tt:H264>

<tt:GovLength>25</tt:GovLength>

<tt:H264Profile>Baseline</tt:H264Profile>

</tt:H264>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:VideoEncoderConfiguration>

<tt:AudioEncoderConfiguration token="AudioEncoderConfigurationToken002">

<tt:Name>AudioEncoderConfigurationName002</tt:Name>

<tt:UseCount>2</tt:UseCount>

<tt:Encoding>G711</tt:Encoding>

<tt:Bitrate>64</tt:Bitrate>

<tt:SampleRate>8</tt:SampleRate>

<tt:Multicast>

<tt:Address>

<tt:Type>IPv4</tt:Type>

<tt:IPv4Address>0.0.0.0</tt:IPv4Address>

</tt:Address>

<tt:Port>0</tt:Port>

<tt:TTL>0</tt:TTL>

<tt:AutoStart>false</tt:AutoStart>

</tt:Multicast>

<tt:SessionTimeout>PT30S</tt:SessionTimeout>

</tt:AudioEncoderConfiguration>

<tt:PTZConfiguration token="PTZConfigurationToken002">

<tt:Name>PTZConfigurationName002</tt:Name>

<tt:UseCount>0</tt:UseCount>

<tt:NodeToken>PTZNodeToken002</tt:NodeToken>

<tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>

<tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>

<tt:DefaultPTZTimeout>PT60S</tt:DefaultPTZTimeout>

</tt:PTZConfiguration>

</trt:Profiles>

</trt:GetProfilesResponse>

</soap:Body>

</soap:Envelope>

解析回复内容:

通过“<trt:Profiles token= ”判断XVR 开启的流通道, 统计存在几个“<trt:Profiles token=” 就开启几个流通道。

解析例子:

获取通道,获取代表通道的Profiles token。

<trt:Profiles token="ProfileToken001" fixed="true">   XVR 通道1  主码流

<trt:Profiles token="ProfileToken002" fixed="true"> XVR 通道2  主码流

<trt:Profiles token="ProfileToken010" fixed="true"> XVR 通道1  子码流

<trt:Profiles token="ProfileToken011" fixed="true"> XVR 通道2  子码流

请求URL  http://192.168.11.61:80/onvif/media_service

请求GetStreamUri:

XML  中 ProfileToken 字段内容需替换成上面获取的Profiles token内容,比如 ProfileToken001。

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">

<s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope">

<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

<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">lenD5CapiTlm38cDg1jFPp0pRF4=</wsse:Password>

<wsse:Nonce>hQTViaVF6Op73GJIM4fCqQ==</wsse:Nonce>

<wsu:Created>2019-06-26T02:32:41Z</wsu:Created>

</wsse:UsernameToken>

</wsse:Security>

</s:Header>

<soap:Body>

<GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl">

<StreamSetup>

<!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->

<Stream xmlns="http://www.onvif.org/ver10/schema">RTP-Unicast</Stream>

<Transport xmlns="http://www.onvif.org/ver10/schema">

<Protocol>UDP</Protocol>

</Transport>

</StreamSetup>

<ProfileToken>ProfileToken001</ProfileToken>

</GetStreamUri>

</soap:Body>

</soap:Envelope>

得到回复GetStreamUriResponse:

<?xml version="1.0" encoding="UTF-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">

<soap:Body>

<trt:GetStreamUriResponse>

<trt:MediaUri>

<tt:Uri>rtsp://192.168.11.61:554/Streaming/Unicast/channels/101</tt:Uri>

<tt:InvalidAfterConnect>false</tt:InvalidAfterConnect>

<tt:InvalidAfterReboot>false</tt:InvalidAfterReboot>

<tt:Timeout>PT60S</tt:Timeout>

</trt:MediaUri>

</trt:GetStreamUriResponse>

</soap:Body>

</soap:Envelope>

解析回复内容:

得到ProfileToken001所代表通道的RTSP  URL。

<trt:MediaUri>

<tt:Uri>rtsp://192.168.11.61:554/Streaming/Unicast/channels/101</tt:Uri>

ONVIF 获取RTSP URL过程相关推荐

  1. ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

    概要:   目前ONVIF协议家族设备已占据数字监控行业半壁江山以上,亲,作为开发者的你还在犹豫是否了解下吗?本文介绍了ONVIF客户端从设备搜索,鉴权,能力获取,媒体信息获取,URI地址获取的整套流 ...

  2. 【视频开发】ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

    转载地址:http://blog.csdn.net/gubenpeiyuan/article/details/25618177 概要:           目前ONVIF协议家族设备已占据数字监控行业 ...

  3. ONVIF获取265的rtsp地址,ptz控制记录

    1.获取url.ptz或imaging的一般流程 <1>.注意   GetCapabilities是向下兼容的接口只能获取到设备支持的最基本功能.GetServices接口能获取到设备支持 ...

  4. Atitit onvif协议获取rtsp地址播放java语言 attilx总结

    Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...

  5. onvif学习笔记10:获取RTSP流地址

    有网友购买了我的ONVIF视频课程 (注:CSDN已经把课程下架了,说不符合要求),问了我几个问题,其中一个是实现ONVIF服务器的获取RTSP地址功能,本文整理出一个思路,愿帮到在学习ONVIF路上 ...

  6. ONVIF、RTSP/RTP、FFMPEG的开发实录

    ONVIF.RTSP/RTP.FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议.RTSP/RTP协议获取IPC实时视频流.FFMPEG解码.开发环境为WIN7 32位 + VS201 ...

  7. ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)

    概要: 眼下ONVIF协议家族设备已占领数字监控行业半壁江山以上,亲,作为开发人员的你还在犹豫是否了解下吗?本文介绍了ONVIFclient从设备搜索.鉴权,能力获取,媒体信息获取.URI地址获取的整 ...

  8. ONVIFclient搜索设备获取rtsp解决开发笔记(精华文章)

    总结: 眼下ONVIF协议系列设备已经超过一半的数字监控行业占据更多,关闭,作为一个开发者,你还在犹豫下就明白了?本文介绍了ONVIFclient从搜索,认证,获取,媒体信息获取.URI地址获取的整套 ...

  9. 如何实现Android端获取RTSP|RTMP流转推RTMP

    技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒 ...

最新文章

  1. 人脸识别技术在法国:质疑声中的先行者
  2. jwt单点登录_单点登录SSO技术选型
  3. stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
  4. 带有Swagger的Spring Rest API –公开文档
  5. 微信开发修改button里的字体大小_微信小程序全栈开发课程【视频版】2.2 index页面完善...
  6. 栈的复习(加减乘除表达式求值)
  7. 20200612:力扣192周周赛上
  8. 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】
  9. 网页为什么只加载了基本html,关于HTML的那些事
  10. linux系统有gotoxy函数,linux下有没有类似gotoxy()的函数
  11. 【重磅整理】180篇NIPS-2020顶会《强化学习领域》Accept论文大全
  12. 服务器违反了协议,IMAP协议违规:未知消息的EXPUNGE响应?
  13. 晨光文具商城多个商品里图片快速复制保存
  14. CodeForces - 767C Garland(附带易错数据)
  15. 常用英语食品词汇- 调味品类
  16. Python逆向进阶:Web逆向私单
  17. 2021年国网计算机考试难吗,2021想要通过国家电网招聘考试到底有多难?
  18. 【内推码gawozp】商汤科技2023校招正式批AI领航员计划正式开启
  19. Excel单元格“公式不能自动计算” ?你一定踩了这4个症状
  20. 刚删除的文件怎么找回?

热门文章

  1. 虚拟机如何安装优麒麟19.10
  2. 作为程序员,到底是老板对你怎么了,让你竟然写下这么既奇葩无语又崩溃的代码注释,笑哭...……
  3. 冠军联赛:当火焰变成焰火 海水变成泪水
  4. Vue项目和Tauri接入Google Analytics谷歌统计流程
  5. 数据分析-Jupyter,Matplotlib介绍-Matplotlib绘制图形
  6. 19 01 18 dango 模型
  7. 怎么导出微信语音【亲测有效】
  8. P75-前端基础动画效果-过渡效果
  9. 国密SM9算法C++实现之一:算法简介
  10. Unity3D基础知识学习笔记