欢迎诸位来阅读在下的博文~
在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力
文章目录
- 前期博客
- 一、RTSP简介
- 二、请求消息结构
- 三、应答消息结构
- 四、RTSP交互流程
前期博客
流媒体与直播的基础理论(其一)
一、RTSP简介
RTSP(Real-Time Streaming Protocol)是一种网络协议,用于控制音频和视频流的传输,尤其是在点播和直播的应用场景中。RTSP 允许客户端对媒体流进行播放、暂停、停止等操作,是流媒体应用程序中的重要组成部分。
- 相当于流媒体服务器的远程控制
- 服务器和客户端双向请求应答,是对称协议
- 与HTTP协议类似,基于文本,UTF-8编码
特点:
(1)可扩展性:新方法和参数很容易加入RTSP。
(2)易解析:RTSP可由标准HTTP或MIME解释器解释。
(3)安全:RTSP使用网页安全机制。
(4)独立于传输:tcp和udp可自由选择。
(5)多服务器支持:每个流可放在不同服务器上,用户自动与不同服务器建立几个并发控制连接,媒体同步在传输层执行。
(6)记录设备控制:协议可控制记录和回放设备。
(7)流控与会议开始分离。
(8)代理与防火墙友好。
RTSP在TCP/IP协议簇中的位置:
二、请求消息结构
请求消息结构:请求行、首部行、空行、消息主题 四部分。
可以看出和HTTP协议很类似,详细可观看下面博客:
Linux之HTTP服务器的构建
-
方法
OPTIONS:查询服务器支持的 RTSP 方法。
DESCRIBE:请求获取媒体流的描述信息。
SETUP:设置媒体流的传输参数,准备传输。
PLAY:开始播放指定的媒体流。
PAUSE:暂停正在播放的媒体流。
TEARDOWN:停止流的传输,释放资源。
GET_PARAMETER:获取流的参数。
SET_PARAMETER:设置流的参数。 -
URL
接收方的地址,例如rtsp://192.168.1.6/video.264 -
版本
一般为RTSP 1.0
三、应答消息结构
请求消息结构:状态行、首部行、空行、消息主题 四部分。
- 状态码
一个数值,表示执行结果,如200表示成功。 - 短语
状态码的文本解释。
四、RTSP交互流程
以下是完整的 RTSP 交互流程表格,描述了 RTSP 的主要消息和交互过程:
方向 | 消息 | 描述 |
---|---|---|
C->S | OPTIONS request(可选) | Client 询问 Server 有哪些方法可用。 |
S->C | OPTIONS response(可选) | Server 回应消息中包含所有可用的方法。 |
C->S | DESCRIBE request(可选) | Client 请求获取媒体流的描述信息,包括格式、编码等。 |
S->C | DESCRIBE response(可选) | Server 返回媒体流的描述信息,通常是 SDP(Session Description Protocol)格式。 |
C->S | SETUP request | Client 询问 Server 设置媒体流的传输参数,指定传输协议和端口,尝试建立会话 |
S->C | SETUP response | Server 确认设置,并返回用于传输的 RTP 和 RTCP 信息,成功会话 |
C->S | PLAY request | Client 请求开始播放指定的媒体流。 |
S->C | PLAY response | Server 确认播放请求,开始发送媒体流数据。 |
C->S | PAUSE request(可选) | Client 请求暂停正在播放的媒体流。 |
S->C | PAUSE response(可选) | Server 确认暂停请求,停止发送媒体流数据。 |
C->S | TEARDOWN request | Client 请求终止会话,停止所有媒体流的传输。 |
S->C | TEARDOWN response | Server 确认终止请求,释放资源,结束会话。 |
注意:在PLAY之后,也可以使用PAUSE方法进行视频暂停。
至此,结束~
望诸位不忘三连支持一下~