RTSP协议
一、什么是RTSP
RTSP是Real Time Streaming Protocol的简写,翻译成中文即实时流协议。它是由由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议是TCP/IP协议体系中的一个应用层协议,位于RTP和RTCP之上,使用TCP或UDP完成数据传输。RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP是双向的,客户机和服务器都可以发出请求,它对流媒体提供了诸如暂停,快进等控制。另外RTSP本身并不传输数据,它的作用相当于流媒体服务器的远程控制,服务器端可以自行选择使用TCP或UDP来传送串流内容。
相关协议介绍:
协议名称 | 描述 |
---|---|
RTP:Realtime Transport Potocol 实时传输协议 | RTP提供时间标志,***以及其他能够保证在实时数据传输时处理时间的方法。 |
RTCP:Realtime Transport Control Potocol 实时传输控制协议 | RTCP是RTP的控制部分,用来保证服务质量和成员管理。RTP和RTCP是一起使用的。 |
RTSP:RealTime Streaming Potocol 实时流协议 | RTSP具体数据传输交给RTP,提供对流的远程控制 |
二、RTSP消息格式
RTSP的消息基本分为请求消息(request)、应答消息(response)两大类,这两种消息的格式是不同。
请求消息格式:
方法 URI RTSP 版本 CRLF
消息头 CRLF
CRLF
消息体 CRLF
RTSP请求报文的常用方法及作用如表1所示。
表. 1 RSTP报文常用方法:
方法 | 方向 | 功能作用 | 要求 |
---|---|---|---|
OPTIONS | C->S S->C | 获取服务器提供的可用方法(可在任意时刻发出OPTIONS请求) | 要求 |
DESCRIBE | C->S | 获取会话描述信息 | 推荐 |
SETUP | C->S | 客户端提醒服务器建立会话,并确定传输模式 | 要求 |
TEARDOWN | C->S | 客户端发起关闭请求 | 要求 |
PLAY | C->S | 客户端发起播放请求 | 要求 |
PAUSE | C->S | 客户端发起暂停请求 | 推荐 |
RECORD | C->S | 方法根据演示描述初始化媒体数据记录范围, 时标反映开始和结束时间 | 可选 |
GET_PARAMETER | C->S S->C | 请求设置演示或URL指定流的参数值 | 可选 |
SET_PARAMETER | C->S S->C | 请求检查RUL指定的演示与媒体的参数值也可用来检查客户机与服务器的连接情况 | 可选 |
应答消息:
RTSP版本 状态码 解释 CRLF
消息头 CRLF
CRLF
消息体 CRLF
RTSP版本一般都是RTSP/1.0, 状态码是一个数值, 200表示成功, 解释是与状态码对应的文本解释
三、RTSP的交互流程
step1:
C->S:OPTION request //询问S有哪些方法可用
S->C:OPTION response //S回应信息中包括提供的所有可用方法
step2:
C->S:DESCRIBE request //要求得到S提供的媒体初始化描述信息
S->C:DESCRIBE response //S回应媒体初始化描述信息,主要是sdp
step3:
C->S:SETUP request //设置会话的属性,以及传输模式,提醒S建立会话
S->C:SETUP response //S建立会话,返回会话标识符,以及会话相关信息
step4:
C->S:PLAY request //C请求播放
S->C:PLAY response //S回应该请求的信息
S->C:发送流媒体数据
step5:
C->S:TEARDOWN request //C请求关闭会话
S->C:TEARDOWN response //S回应该请求