请求 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>