RTSP协议基本分析
Posted “好记性不如”烂博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTSP协议基本分析相关的知识,希望对你有一定的参考价值。
目录
- 一、介绍
- 二、RTSP与HTTP
- 三、RTSP推流基本过程
- 四、RTSP拉流基本过程
一、介绍
RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,
RTSP协议与HTTP协议类似。
RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的⻆色。尽管有时可以把
RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据
的传送可通过RTP/RTCP等协议来完成。
一次基本的RTSP操作过程是:首先,客户端连接到流服务器并发送一个RTSP描述命令(DESCRIBE)。流
服务器通过一个SDP描述来进行反馈,反馈信息包括流数量、媒体类型等信息。客户端再分析该SDP描
述,并为会话中的每一个流发送一个RTSP建立命令(SETUP),RTSP建立命令告诉服务器客户端用于接收
媒体数据的端口。流媒体连接建立完成后,客户端发送一个播放命令(PLAY),服务器就开始在UDP上传送
媒体流(RTP包)到客户端。 在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。
最后,客户端可发送一个终止命令(TERADOWN)来结束流媒体会话。
二、RTSP与HTTP
- RTSP引入了几种新的方法,比如DESCRIBE、PLAY、SETUP 等,并且有不同的协议标识符,RTSP
为rtsp 1.0,HTTP为http 1.1。 - HTTP是无状态的协议,而RTSP为每个会话保持状态 session的概念。
- RTSP协议的客户端和服务器端都可以发送Request请求,而在HTTP 协议中,只有客户端能发送
Request请求。 - 在RTSP协议中,载荷数据一般是通过带外方式来传送的(除了交织的情况),及通过RTP协议在不同的
通道中来传送载荷数据。而HTTP协议的载荷数据都是通过带内方式传送的,比如请求的网页数据是在回应
的消息体中携带的。 - 使用ISO 10646(UTF-8) 而不是ISO 8859-1,以配合当前html的国际化。
- RTSP使用URI请求时包含绝对URI。而由于历史原因造成的向后兼容性问题,HTTP/1.1只在请求中包
含绝对路径,把主机名放入单独的标题域中。
三、RTSP推流基本过程
1、OPTION 查询服务器端可用方法
1.1、Client 请求
1.2、Server 回复
2、ANNOUNCE 发送媒体描述信息
2.1、Client 请求
2.2、Server 回复
3、SETUP建立RTSP会话
3.1、Client 请求(视频流)
3.2、Server 回复(视频流)
3.3、Client 请求(音频流)
3.4、Server 回复(音频流)
4、RECORD请求传送数据
4.1、Client 请求
4.2、Server 回复
5、RTCP 播放控制、RTP视频数据
5.1、Client 发送(RTCP)
5.2、Client 发送(RTP)
6、RTCP 播放控制、RTP音频数据
6.1、Client 发送(RTCP)
6.2、Client 发送(RTP)
7、TEARDOWN关闭会话
7.1、Client 请求
7.2、Server 回复
四、RTSP拉流基本过程
1、OPTION 查询服务器端可用方法
1.1、Client 请求
1.2、Server 回复
2、DESCRIBE 获取媒体描述信息
2.1、Client 请求
2.2、Server 回复
3、SETUP建立RTSP会话
3.1、Client 请求(视频流)
3.2、Server 回复(视频流)
3.3、Client 请求(音频流)
3.4、Server 回复(音频流)
4、PLAY请求开始传送数据
4.1、Client 请求
4.2、Server 回复
5、RTP数据传送播放
5.1、Server 发来 (视频流)
5.2、Server 发来 (音频流)
6、TEARDOWN关闭会话,退出
客户端发送TEARDOWN请求结束会话,与推流一样。
以上是关于RTSP协议基本分析的主要内容,如果未能解决你的问题,请参考以下文章
基于EasyDarwin的实现无人机远程视频传输--RTSP协议分析篇