ONVIF 获取RTSP URL过程
请求 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过程相关推荐
- ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
概要: 目前ONVIF协议家族设备已占据数字监控行业半壁江山以上,亲,作为开发者的你还在犹豫是否了解下吗?本文介绍了ONVIF客户端从设备搜索,鉴权,能力获取,媒体信息获取,URI地址获取的整套流 ...
- 【视频开发】ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
转载地址:http://blog.csdn.net/gubenpeiyuan/article/details/25618177 概要: 目前ONVIF协议家族设备已占据数字监控行业 ...
- ONVIF获取265的rtsp地址,ptz控制记录
1.获取url.ptz或imaging的一般流程 <1>.注意 GetCapabilities是向下兼容的接口只能获取到设备支持的最基本功能.GetServices接口能获取到设备支持 ...
- Atitit onvif协议获取rtsp地址播放java语言 attilx总结
Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...
- onvif学习笔记10:获取RTSP流地址
有网友购买了我的ONVIF视频课程 (注:CSDN已经把课程下架了,说不符合要求),问了我几个问题,其中一个是实现ONVIF服务器的获取RTSP地址功能,本文整理出一个思路,愿帮到在学习ONVIF路上 ...
- ONVIF、RTSP/RTP、FFMPEG的开发实录
ONVIF.RTSP/RTP.FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议.RTSP/RTP协议获取IPC实时视频流.FFMPEG解码.开发环境为WIN7 32位 + VS201 ...
- ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)
概要: 眼下ONVIF协议家族设备已占领数字监控行业半壁江山以上,亲,作为开发人员的你还在犹豫是否了解下吗?本文介绍了ONVIFclient从设备搜索.鉴权,能力获取,媒体信息获取.URI地址获取的整 ...
- ONVIFclient搜索设备获取rtsp解决开发笔记(精华文章)
总结: 眼下ONVIF协议系列设备已经超过一半的数字监控行业占据更多,关闭,作为一个开发者,你还在犹豫下就明白了?本文介绍了ONVIFclient从搜索,认证,获取,媒体信息获取.URI地址获取的整套 ...
- 如何实现Android端获取RTSP|RTMP流转推RTMP
技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒 ...
最新文章
- 人脸识别技术在法国:质疑声中的先行者
- jwt单点登录_单点登录SSO技术选型
- stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
- 带有Swagger的Spring Rest API –公开文档
- 微信开发修改button里的字体大小_微信小程序全栈开发课程【视频版】2.2 index页面完善...
- 栈的复习(加减乘除表达式求值)
- 20200612:力扣192周周赛上
- 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】
- 网页为什么只加载了基本html,关于HTML的那些事
- linux系统有gotoxy函数,linux下有没有类似gotoxy()的函数
- 【重磅整理】180篇NIPS-2020顶会《强化学习领域》Accept论文大全
- 服务器违反了协议,IMAP协议违规:未知消息的EXPUNGE响应?
- 晨光文具商城多个商品里图片快速复制保存
- CodeForces - 767C Garland(附带易错数据)
- 常用英语食品词汇- 调味品类
- Python逆向进阶:Web逆向私单
- 2021年国网计算机考试难吗,2021想要通过国家电网招聘考试到底有多难?
- 【内推码gawozp】商汤科技2023校招正式批AI领航员计划正式开启
- Excel单元格“公式不能自动计算” ?你一定踩了这4个症状
- 刚删除的文件怎么找回?