LV035-RTSP简介
一、RTSP 简介
1. 概述
RTSP 出现以前,最热的大概就是 HTTP 协议。想象一下,当你需要欣赏网络中的某一段视频,通过 HTTP 协议访问其 URL、开始下载、下载完成后播放。对于早期的视频采集设备、网络带宽或是负责渲染的显示器而言,似乎多给予一点耐心、多重连几次断开的 HTTP 连接、甚至多校验几次下载后文件的完整性,体验上也还能过得去。毕竟那时候的分辨率、帧率、带宽限制了互联网途径传播媒体文件的大小,信息的分享只能通过各种硬盘、U 盘、光盘以存储后文件的形式进行传输。
随着硬件设备技术的发展,采集设备分辨率在提升,显示器支持了更高的帧率,网络带宽也指数增长,这都为更好的观影体验提供了基础支持。随着网络资源的日益丰富,用户时间的稀缺性日益凸显,为了快速观看、判别视讯本身是否符合自身口味,在线实时观看成了一大诉求。而传统的 HTTP 下载显然不能够匹配该需求,因此在寻求 streaming 的道路上,RTSP 脱颖而出。
RTSP 全称实时流协议(Real Time Streaming Protocol),它是一个网络控制协议,设计用于娱乐、会议系统中控制流媒体服务器。RTSP 用于在希望通讯的两端建立并控制媒体会话(session),客户端通过发出 VCR-style 命令如 play、record 和 pause 等来实时控制媒体流。
2. 简介
RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP 协议与 HTTP 协议类似。是 TCP/IP 协议体系中的一个应用层协议, 由哥伦比亚大学, 网景和 RealNetworks 公司提交的 IETF RFC 标准。
该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP 在体系结构上位于 RTP 和 RTCP 之上, 它使用 TCP 或 RTP 完成数据传输。RTSP 被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把 RTSP 控制信息和媒体数据流交织在一起传送,但一般情况 RTSP 本身并不用于转送媒体流数据。媒体数据的传送可通过 RTP/RTCP 等协议来完成。
3. 一次 RTSP 操作的过程
- 首先,客户端连接到流服务器并发送一个 RTSP 描述命令(DESCRIBE)。
- 流服务器通过一个 SDP(会话描述协议,Session Description Protocol) 描述来进行反馈,反馈信息包括流数量、媒体类型等信息。
- 客户端再分析该 SDP 描述,并为会话中的每一个流发送一个 RTSP 建立命令(SETUP),RTSP 建立命令告诉服务器客户端用于接收媒体数据的端口。流媒体连接建立完成后,
- 客户端发送一个播放命令(PLAY),服务器就开始在 UDP 上传送媒体流(RTP 包)到客户端。在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。
- 最后,客户端可发送一个终止命令(TERADOWN)来结束流媒体会话
二、RTSP over UDP/TCP
播放 RTSP 流时,可通过客户端来指定拉流方式为 UDP 还是 TCP。其实吧,个人觉得应该是客户端通过 RTSP 决定使用 UDP 还是 TCP 来传输后续的 RTP 包和 RTCP 包,而不是 RTSP 是使用 UDP/TCP,RTSP 走的只有 TCP 而已,这里简单说明一下。

RTSP over TCP 方式时,RTSP、RTP(Video)、RTCP(Video)、RTP(Audio)、RTCP(Audio)都通过同一个 TCP 连接来传输。那么如何区分 RTSP、RTP(Video)、RTCP(Video)、RTP(Audio)、RTCP(Audio) ?做法是对于 RTP 和 RTCP 包,在 TCP 和 RTP(RTCP)数据之间增加一层 RTSP Interleaved Frame,如下所示。
dollar sign : 魔数,美元符号
$ (0x24)用于表明 Interleave Frame 层的开始channel identifier:表明协议的类型一般如下:
| 0x00 | Video RTP |
| 0x01 | Video RTCP |
| 0x02 | Audio RTP |
| 0x03 | Audio RTCP |
- data length:RTP 包(封装的二进制数据)的大小
参考资料:
rtsp 的 2 种收流模式_rtp over rtsp-CSDN 博客
深入解析 RTP RTCP 协议报文结构与抓包分析-开发者社区-阿里云
【rtp over tcp/rtsp 解析】&&【H264 格式与 RTP 包解析】&&【以 H264 的打包方式-分片打包(type = 28 FU-A 方式为例)】