RTSP(实时流协议)
RTSP中使用会话概念代替连接,由于它本身不与传输层绑定,因此RTSP会话在传输层支持TCP与UDP协议发送请求。RTSP客户机和服务器都可以发出请求,本身并不携带传输的媒体数据,而是控制RTP协议进行媒体数据传输。由于RTSP控制通过单独协议发送流,与控制通道无关,因此RTSP会话状态标记了服务器流资源的分配情况,如果对数据进行提取数据,需要同时进行流媒体数据传输协议(RTP协议)的解析。
一、RTSP消息
RTSP基于文本协议,行以CRLF中断。消息类型包含请求(Request)和响应(Response)两种消息格式。两种消息都可能包括一个起始行,一个或多个标题域(headers),一个空行(用来表示标题域结束)和消息实体(message-body,可为空)
·1.1请求行格式
请求行格式为: 请求方法 SP 请求URI SP RTSP版本 CRLF
RTSP请求方法如下:
method |
direction |
object |
requirement |
DESCRIBE |
C->S |
P,S |
recommended |
ANNOUNCE |
C->S, S->C |
P,S |
optional |
GET_PARAMETER |
C->S, S->C |
P,S |
optional |
OPTIONS |
C->S, S->C |
P,S |
required(S->C:optional) |
PAUSE |
C->S |
P,S |
recommended |
PLAY |
C->S |
P,S |
required |
RECORD |
C->S |
P,S |
optional |
REDIRECT |
S->C |
P,S |
optional |
SETUP |
C->S |
S |
required |
SET_PARAMETER |
C->S,S->C |
P,S |
optional |
TEARDOWN |
C->S |
P,S |
required |
·1.2 状态行格式
状态行格式为: 协议版本 SP 状态码 SP 响应词语文本 CRLF
状态码格式为三位数字,形式如:1XX,2XX等
·1.3 消息实体
实体包含实体头和实体主体。所有HEAD请求方法的响应都不含实体主体。
·1.4 请求、响应、实体头域(标题域)
下表中列出了RTSP中使用到的头域,类型"g"表示通用头,类型"R"表示请求头,类型"r"表示回复头,类型"e"表示实体头。标记为"req."的头说明是必需的(required),标记为"opt."表示可选的(optional)。"entity"表示所有方法应当含有消息主体。
Header |
type |
support |
methods |
Accept |
R |
opt. |
entity |
Accept-Encoding |
R |
opt. |
entity |
Accept-Language |
R |
opt. |
all |
Allow |
r |
opt. |
all |
Authorization |
R |
opt. |
all |
Bandwidth |
R |
opt. |
all |
Blocksize |
R |
opt. |
all but OPTIONS, TEARDOWN |
Cache-Control |
g |
opt. |
SETUP |
Conference |
R |
opt. |
SETUP |
Connection |
g |
req. |
all |
Content-Base |
e |
opt. |
entity |
Content-Encoding |
e |
req. |
SET_PARAMETER |
Content-Encoding |
e |
req. |
DESCRIBE, ANNOUNCE |
Content-Language |
e |
req. |
DESCRIBE, ANNOUNCE |
Content-Length |
e |
req. |
SET_PARAMETER, ANNOUNCE |
Content-Length |
e |
req. |
entity |
Content-Location |
3 |
opt. |
entity |
Content-Type |
e |
req. |
SET_PARAMETER, ANNOUNCE |
Content-Type |
r |
req. |
entity |
CSeq |
g |
req. |
all |
Date |
g |
opt. |
all |
Expires |
e |
opt. |
DESCRIBE, ANNOUNCE |
From |
R |
opt. |
all |
If-Modified-Since |
R |
opt. |
DESCRIBE, SETUP |
Last-Modified |
e |
opt. |
entitiy |
Proxy-Authenticate |
|||
Proxy-Require |
R |
req. |
all |
Public |
r |
opt. |
all |
Range |
R |
opt. |
PLAY,PAUSE,RECORD |
Range |
r |
opt. |
PLAY,PAUSE,RECORD |
Referer |
R |
opt. |
all |
Require |
R |
req. |
all |
Retry-After |
r |
opt. |
all |
Rtp-Info |
r |
req. |
PLAY |
Scale |
Rr |
opt. |
PLAY,RECORD |
Session |
Rr |
req. |
all but SETUP,OPTIONS |
Server |
r |
opt. |
all |
Speed |
Rr |
opt. |
PLAY |
Transport |
Rr |
req. |
SETUP |
Unsupported |
r |
req. |
all |
User-Agent |
R |
opt. |
all |
Via |
g |
opt. |
all |
WWW-Authenticate |
r |
opt. |
all |