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指定消息实体的类型及长度
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
- 请求
- 应答
- 说明
- Server域为服务描述
- Public域为服务支持的方法
DESCRIBE
- 请求
- 应答
SETUP
- 请求
- 应答
- 说明
- 请求消息中Transport域指定客户端在支持的网络参数
- 响应消息中Transport域包含客户端所指定的传输参数
- 服务器需为客户端生成会话号(Session)
- timeout:当暂停超过timeout,会话断开
PLAY
- 请求
- 应答
- 说明
- Range指定开始时间和结束时间,npt=now-(直播),ntp=10-15
- PLAY请求是排队生效的,只有前一个放玩了,才放下一个
TEARDOWN
- 请求
- 应答