前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手撕RTSP协议系列(9)——TEARDOWN

手撕RTSP协议系列(9)——TEARDOWN

作者头像
视界音你而不同
发布2020-10-30 14:39:23
2K0
发布2020-10-30 14:39:23
举报

上一篇我们讲了RTSP PAUSE消息,本篇我们来看下RTSP TEARDOWN消息!

TEARDOWN作用

TEARDOWN是拆卸的意思,对于RTSP而言,就是结束流传输,同时释放与之相关的资源,TEARDWON之后,整个RTSP连接也就结束了!好了,接下来我们来仔细看一下:

TEARDOWN格式

首先还是看一下TEARDOWN请求的消息格式:

如图中,TEARDOWN消息中,指定了URI,不用多说了;RTSP版本号也是我们的老朋友了;CSeq表示序列号;Authorization表示认证信息;User-Agent是用户代理;Session表示会话ID(SETUP消息请求之后RTSP sever返回的会话id)。

感觉不够直观,哈哈,来来来,抓包献上,分析协议没有抓包总感觉像缺了灵魂:

该TREADOWN消息中,消息序列号为10,用户代理为LibVLC/3.0.11,这是我们使用VLC播放器rtsp流的一个代理,消息序列号为10, Session为之前SETUP请求后服务端返回的session字段的值,用于表示此次会话连接!

发出去请求后,服务端同样也会回馈response的消息,response的格式如下:

回复消息中包含RTSP 版本号,状态码以及针对状态码的描述;同时返回消息的序列号(对应请求序列号)以及session id;另外还返回日期信息!服务端正常返回该消息,则此次RTSP连接消息结束!

我们来看一个抓包文件:

从抓包文件中可以看出,服务端回复200 Ok的消息,表示正常回复;同时也返回CSeq和Session,CSeq和Session的值与TEARDOWN请求中的值是一致的;另外返回了结束的日期和时间!

TEARDOWN示例

好了,老规矩,最后再来一个完整TEARDWON请求和回复的例子:

TEARDOWN请求

代码语言:javascript
复制
TEARDOWN rtsp://192.17.1.73:554/Streaming/Channels/101/?transportmode=unicast&profile=Profile_1 RTSP/1.0\r\n
CSeq: 10\r\n
Authorization: Digest username="admin", realm="bcad28138995", nonce="a1a5b9d3865180dccbaffb1cb2eb2a27", uri="rtsp://192.17.1.73:554/Streaming/Channels/101/", response="c5c005ef16638dfa326dcfc0c3f54aab"\r\n
User-Agent: LibVLC/3.0.11 (LIVE555 Streaming Media v2016.11.28)\r\n
Session: 1659421772\r\n\r\n

TEARDOWN的回复

代码语言:javascript
复制
RTSP/1.0 200 OK\r\n
CSeq: 10\r\n
Session: 1659421772\r\n
Date: Thu, Aug 27 2020 18:31:13 GMT\r\n\r\n

关于TEARDOWN就介绍到这里了,TEARDOWN之后,整个RTSP连接就结束了。不过RTSP还有一些其他常见的OPTION,如SET_PARAMETER,GET_PARAMETER,接下来我们就简单介绍一下这些指令!下一篇见了,老铁们!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 视界音你而不同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档