0%

RTSP

RTSP

协议标准:RFC 2326

RTSP与HTTP

  • 协议和HTTP格式相同,可以使用标准HTTP解析器来解析
  • HTTP是短连接,RTSP是长连接
  • HTTP无状态,RTSP有状态,RTSP的命令总是按照顺序来发送
  • HTTP协议默认使用80端口,而RTSP 默认使用554端口
  • 安全:RTSP可以使用HTTP安全机制

消息格式

  • RTSP请求通常由请求行+请求头域+消息实体组成,请求头域以一个空行作为结束。
  • 请求头域中的CSeq必需与对应的请求消息中Cseq域的值一致
  • 若带消息实体,在头域中会有Content-Length和Content-Type指定消息实体的类型及长度

image-20210701174433844

RTSP方法

方法 发送方向 是否一定需要 功能简述
DESCRIBE C->S 建议 获取的描述信息,通常用SDP表示
ANNOUNCE C->S, S->C 可选择 C->S上传描述信息, S->C更新会话描述
GET_PARAMETER C->S, S->C 可选择 获取URI所标识的表示或者流的参数的值
OPTIONS C->S, S->C 服务端必需 (S->C: 可选择) 获取服务器可用,也可OPTIONS作为心跳包
PAUSE C->S 建议 通知服务器暂时中断流媒体的传送
PLAY C->S 必需 通知服务器开始传输数据
RECORD C->S 可选择 通知服务器录制
REDIRECT S->C 可选择 重定向服务地址
SETUP C->S 必需 协商流媒体使用的传输方式
SET_PARAMETER C->S, S->C 可选择 请求设置URI所标识的表示或者流的参数的值
TEARDOWN C->S 必需 停止媒体数据的传送

OPTIONS

  • 请求
    image-20210701174821460
  • 应答
    image-20210701174911475
  • 说明
    • Server域为服务描述
    • Public域为服务支持的方法

DESCRIBE

  • 请求
    image-20210701175009456
  • 应答
    image-20210701175048620

SETUP

  • 请求
    image-20210701175148373
  • 应答
    image-20210701175239949
  • 说明
    • 请求消息中Transport域指定客户端在支持的网络参数
    • 响应消息中Transport域包含客户端所指定的传输参数
    • 服务器需为客户端生成会话号(Session)
    • timeout:当暂停超过timeout,会话断开

PLAY

  • 请求
    image-20210701175326688
  • 应答
    image-20210701175419807
  • 说明
    • Range指定开始时间和结束时间,npt=now-(直播),ntp=10-15
    • PLAY请求是排队生效的,只有前一个放玩了,才放下一个

TEARDOWN

  • 请求
    image-20210701175502214
  • 应答
    image-20210701175555952

RTSP基本信令的交互流程

image-20210701172859217