RTSP流协议(Real-Time Streaming Protocol)
RTSP控制 + SDP参数协商 + RTP视频传输 + RTCP网络质量检测

1)RTSP
定义:RTSP实时流传输协议,是应用层流媒体的控制协议,核心是控制与输出分离,只负责播放,暂停,快进等会话控制,不直接传音视频数据。
有状态协议 -- Session ID记住链接
链接成功之后,会通过服务器生成唯一的Session ID,后续的所有操作都会带着这个ID,后续服务器就会知道这个是谁,确保传输的数据不断

核心架构:控制与数据分离
- 控制通道:发命令
- 数据通道:传画面

RTSP+TCP
由于RTSP是控制播放快进暂停等操作,如果传输过程中出现了丢包的情况,就会导致整个流出现问题,TCP 554端口为可靠传输,不丢包,不会乱序,确保指令的送达
RTP + UDP +RTCP
RTP + UDP
RTP和UDP,RTP是传输数据的通道,UDP不需要握手,也不需要重传,速度快,延迟低,适合实时画面的传播,轻微的丢包不影响整体
RTCP
负责统计丢包率,检测网络延迟,调节传输的码率

示意图:

双向控制
RTSP:
客户端,服务端可以主动发送消息
客户端:暂停,播放
服务端:摄像头离线,温度过高,异常
HTTP:
客户端主动发送消息,服务端回应
低延迟
RTSP不需要切片,缓存堆积也不需要,直接对页面进行解码播放
局域网 200ms ~ 1s
外网: 1s ~ 2s
RTSP的命令
OPTIONS:询问摄像头,你支持哪些功能
DESCRIBE:请求获取视频参数 → 摄像头返回 SDP
SETUP:打通视频通道,生成 Session ID
PLAY发送指令:开始传输画面
TEARDOWN:断开连接,关闭视频流
SDP协议
纯文本格式 key = value格式
主要是存储配置信息的关键参数

RTSP协议的格式
rtsp://IP/目录/摄像头通道号
举例
rtsp://127.0.0.1/live/ch2_1
rtsp:// :规定用「RTSP 协议」连接,就像网页是 http:// 一样。
127.0.0.1: 摄像头 / 流媒体服务器 的 IP 地址。(找到设备在哪)
/live/ :代表实时直播流目录。
ch2_1 : 代表第二个摄像头的主码流(清晰度高,画质好)
ch2_2: 代表第二个摄像头的子码流(压缩,画质模糊,占用网速低)
ch = channel 通道每个摄像头都有自己的通道名称。
全流程举例
电脑链接摄像头
- 播放器通过 TCP 554 端口 连接摄像头,建立 RTSP 控制通道。
- 客户端发送DESCRIBE请求,摄像头返回一段SDP 文本,告知:视频是 H.265 编码、后续收流使用的 UDP 端口、帧率等配置参数。
- 客户端解析 SDP,发送SETUP请求,协商数据通道,服务器生成唯一Session ID绑定本次会话。
- 客户端发送PLAY指令,正式请求摄像头推流。
- 摄像头通过 RTP+UDP 持续发送实时视频画面,同时依靠 RTCP 上报丢包、延迟等网络状态。
- 观看结束后,客户端发送TEARDOWN,销毁 Session、断开连接,停止传输。
