RTSP流协议

RTSP流协议(Real-Time Streaming Protocol)

RTSP控制 + SDP参数协商 + RTP视频传输 + RTCP网络质量检测

1)RTSP

定义:RTSP实时流传输协议,是应用层流媒体的控制协议,核心是控制与输出分离,只负责播放,暂停,快进等会话控制,不直接传音视频数据。

有状态协议 -- Session ID记住链接

链接成功之后,会通过服务器生成唯一的Session ID,后续的所有操作都会带着这个ID,后续服务器就会知道这个是谁,确保传输的数据不断

核心架构:控制与数据分离

  1. 控制通道:发命令
  2. 数据通道:传画面

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 通道每个摄像头都有自己的通道名称。

全流程举例

电脑链接摄像头

  1. 播放器通过 TCP 554 端口 连接摄像头,建立 RTSP 控制通道。
  2. 客户端发送DESCRIBE请求,摄像头返回一段SDP 文本,告知:视频是 H.265 编码、后续收流使用的 UDP 端口、帧率等配置参数。
  3. 客户端解析 SDP,发送SETUP请求,协商数据通道,服务器生成唯一Session ID绑定本次会话。
  4. 客户端发送PLAY指令,正式请求摄像头推流。
  5. 摄像头通过 RTP+UDP 持续发送实时视频画面,同时依靠 RTCP 上报丢包、延迟等网络状态。
  6. 观看结束后,客户端发送TEARDOWN,销毁 Session、断开连接,停止传输。
相关推荐
sp42a19 天前
通过 RootEncoder 进行安卓直播 RTSP 推流
android·推流·rtsp
阿拉斯攀登21 天前
网页播放 4 路 RTSP 摄像头(零配置、一键运行)
rtsp·视频分屏
sheldon_blogs1 个月前
Android设备搭建本地RTSP服务器(基于live555)
rtsp
REDcker2 个月前
RTSP 直播技术详解
linux·服务器·网络·音视频·实时音视频·直播·rtsp
小李独爱秋3 个月前
计算机网络经典问题透视:RTP首部三剑客——序号、时间戳与标记的使命
服务器·计算机网络·web安全·信息与通信·rtsp
小李独爱秋3 个月前
计算机网络经典问题透视:RTP协议能否提供应用分组的可靠传输?
服务器·计算机网络·web安全·信息与通信·rtsp
好多渔鱼好多3 个月前
【流媒体协议】RTSP / RTP / RTCP 协议全景介绍
网络·网络协议·rtp·rtsp·rtcp·ipc摄像头
Sleepless_斑马3 个月前
RTMP/RTSP流媒体服务器搭建、ffmpeg推流桌面、vlc拉流
ffmpeg·rtmp·rtsp
晚晶4 个月前
[C++/流媒体/tcp/rtsp]构建一个简单的流媒体转发服务器,用于将rtsp推流转发出去
服务器·c++·tcp/ip·流媒体·转发·rtsp