一、介绍
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 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/11d94ded489e4487a9a123fa2e09861b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
1.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/7c95db480bb14dc09e446f86eeccccbf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
2、ANNOUNCE 发送媒体描述信息
2.1、Client 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/8bb4ba52637e4548aa02b2331dc95dcd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
2.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/27dde5da10c443e2a4f8ff111aa174eb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3、SETUP建立RTSP会话
3.1、Client 请求(视频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/afd4540c90604d76a6e03393bcaf0db5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3.2、Server 回复(视频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ce48a3c1257241929a7a69799697943d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3.3、Client 请求(音频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/92975728509a4e70829ff6911be94a84.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3.4、Server 回复(音频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/97d9a0a2dd844ebdb197e46f1ef18fdd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
4、RECORD请求传送数据
4.1、Client 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/6908b0d7d34140e98b9f5769b781d463.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
4.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/1bc6a3d84d6e43eda87af03d82b3d7db.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
5、RTCP 播放控制、RTP视频数据
5.1、Client 发送(RTCP)
![在这里插入图片描述](https://img-blog.csdnimg.cn/46cb1017b30d4b719487924a241e8436.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
5.2、Client 发送(RTP)
![在这里插入图片描述](https://img-blog.csdnimg.cn/85338b8460d943c7a504bf827681c7d6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
6、RTCP 播放控制、RTP音频数据
6.1、Client 发送(RTCP)
![在这里插入图片描述](https://img-blog.csdnimg.cn/6edf16ec5b2d4882a7c4cb52d138d023.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
6.2、Client 发送(RTP)
![在这里插入图片描述](https://img-blog.csdnimg.cn/7de51b25d8f64b8fbf05c276986a1e2f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
7、TEARDOWN关闭会话
7.1、Client 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/5728db5ff66a4f098f59acbe9ab04db9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
7.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/dcb6754da77c472d802f55706d5adcb5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
四、RTSP拉流基本过程
1、OPTION 查询服务器端可用方法
1.1、Client 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/9a027f7313674bbba2e35f729c654521.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
1.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/99abc19dd8ea4909a5c1964d635a2abb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
2、DESCRIBE 获取媒体描述信息
2.1、Client 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/2953b3577c704028a66f31f4b591dc22.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
2.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/919beb85981e4a2296d83c1cab3e5932.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3、SETUP建立RTSP会话
3.1、Client 请求(视频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b26ba2a6e47c497fa2aeb689f600521e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3.2、Server 回复(视频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/348652d9bccc4e55b43319086ac5ea0f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3.3、Client 请求(音频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ef2d3248e8fd442bacc4baa42f9ed511.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
3.4、Server 回复(音频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/1946b80d148e4385a83acfdbc0ac8ad8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
4、PLAY请求开始传送数据
4.1、Client 请求
![在这里插入图片描述](https://img-blog.csdnimg.cn/c65be0d8ff834f14b2ba9222302a99a9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
4.2、Server 回复
![在这里插入图片描述](https://img-blog.csdnimg.cn/e7a25161ef2043e3a1fb1af4659a03af.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
5、RTP数据传送播放
5.1、Server 发来 (视频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/4654dd1aa503482492751c2918b3804c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
5.2、Server 发来 (音频流)
![在这里插入图片描述](https://img-blog.csdnimg.cn/652f36377a4747e8ad12d6167403cce7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oCc5aW96K6w5oCn5LiN5aaC4oCd54OC5Y2a5a6i,size_20,color_FFFFFF,t_70,g_se,x_16)
6、TEARDOWN关闭会话,退出
客户端发送TEARDOWN请求结束会话,与推流一样。
|