流媒体-RTSP

来源:互联网 发布:gcf软件下载 编辑:程序博客网 时间:2024/06/05 08:23

1、RTSP简介

实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,充当多媒体服务器的网络远程控制。在RTSP连接期间, RTSP用户可打开或关闭多个对服务器的可传输连接以发出RTSP请求。 该协议目的在于控制多个数据发送连接, 为选择发送通道(如UDP, 组播UDP与TCP)提供途径, 并为选择基于RTP上发送机制提供方法

2、 RTSP消息格式

RTSP的消息有两大类: 请求消息(request), 回应消息(response)


请求消息

 

   方法 URI RTSP版本CR LF

   消息头 CRLF

   CRLF

   消息体 CRLF

 

其中方法包括OPTION回应中所有的命令, URI是接受方的地址,例如:rtsp://192.168.20.136.RTSP版本一般都是RTSP/1.0. 每行后面的CRLF表示回车换行, 需要接受端有相应的解析, 最后一个消息头需要有两个CR LF(即空行)

 

回应消息

 

   RTSP版本状态码 解释 CR LF

   消息头 CRLF

   CRLF

   消息体 CRLF

 

其中RTSP版本一般都是RTSP/1.0, 状态码是一个数值, 200表示成功, 解释是与状态码对应的文本解释.

 

3 RTSP命令

注:P----演示,S----流,C----用户端,S----服务器端

方法

方向

对象

要求

含义

DESCRIBE

C->S

P, S

推荐

检查演示或媒体对象的描述,也允许使用接收头指定用户理解的描述格式。DESCRIBE的答复-响应组成媒体RTSP初始阶段

ANNOUNCE

C->S

S->C

P, S

可选

当从用户发往服务器时,ANNOUNCE将请求URL识别的演示或媒体对象描述发送给服务器;反之,ANNOUNCE实时更新连接描述。如新媒体流加入演示,整个演示描述再次发送,而不仅仅是附加组件,使组件能被删除

GET_PARAMETER

C->S

S->C

P, S

可选

GET_PARAMETER请求检查RUL指定的演示与媒体的参数值。没有实体体时,GET_PARAMETER也许能用来测试用户与服务器的连通情况

OPTIONS

C->S

S->C

P, S

要求

可在任意时刻发出OPTIONS请求,如用户打算尝试非标准请求,并不影响服务器状态

PAUSE

C->S

P, S

推荐

PAUSE 请求引起流发送临时中断。如请求URL命名一个流,仅回放和记录被停止;如请求URL命名一个演示或流组,演示或组中所有当前活动的流发送都停止。恢复回 放或记录后,必须维持同步。在SETUP消息中连接头超时参数所指定时段期间被暂停后,尽管服务器可能关闭连接并释放资源,但服务器资源会被预订

PLAY

C->S

P, S

要求

PLAY 告诉服务器以SEFUP指定的机制开始发送数据;直到一些SETUP请求被成功响应,客户端才可发布PLAY请求。PLAY请求将正常播放时间设置在所指 定范围的起始处,发送流数据直到范围的结束处。PLAY请求可排成队列,服务器将PLAY请求排成队列,顺序执行

RECORD

C->S

P, S

可选

该 方法根据演示描述初始化媒体数据记录范围,时标反映开始和结束时间;如没有给出时间范围,使用演示描述提供的开始和结束时间。如连接已经启动,立即开始记 录,服务器数据请求URL或其他URL决定是否存储记录的数据;如服务器没有使用URL请求,响应应为201(创建),并包含描述请求状态和参考新资源的 实体与位置头。支持现场演示记录的媒体服务器必须支持时钟范围格式,smpte格式没有意义

REDIRECT

S->C

P, S

可选

重定向请求通知客户端连接到另一服务器地址。它包含强制头地址,指示客户端发布URL请求;也可能包括参数范围,以指明重定向何时生效。若客户端要继续发送或接收URL媒体,客户端必须对当前连接发送TEARDOWN请求,而对指定主执新连接发送SETUP请求

SETUP

C->S

S

要求

对 URL的SETUP请求指定用于流媒体的传输机制。客户端对正播放的流发布一个SETUP请求,以改变服务器允许的传输参数。如不允许这样做,响应错误 为"455 Method Not Valid In This State”。为了透过防火墙,客户端必须指明传输参数,即使对这些参数没有影响

SET_PARAMETER

C->S

S->C

P, S

可选

这 个方法请求设置演示或URL指定流的参数值。请求仅应包含单个参数,允许客户端决定某个特殊请求为何失败。如请求包含多个参数,所有参数可成功设置,服务 器必须只对该请求起作用。服务器必须允许参数可重复设置成同一值,但不让改变参数值。注意:媒体流传输参数必须用SETUP命令设置。将设置传输参数限制 为SETUP有利于防火墙。将参数划分成规则排列形式,结果有更多有意义的错误指示

TEARDOWN

C->S

P, S

要求

TEARDOWN请求停止给定URL流发送,释放相关资源。如URL是此演示URL,任何RTSP连接标识不再有效。除非全部传输参数是连接描述定义的,SETUP请求必须在连接可再次播放前发布


4Live555库实现RTSP工作流程

1.客户端发送OPTION请求,请求服务器提供的方法。
2.服务器应答OPTION请求,返回方法,目前服务器只对DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE做了实现。
3.客户端发送DESCRIBE请求,向服务器获取会话描述信息(SDP),包括媒体名字、解码类型、视频分辨率等描述。
4.服务器应答DESCRIBE请求,返回媒体参数;传输H.264文件时,媒体参数主要包括:SPS/PPS,媒体名、传输协议等信息。
5.客户端发送SETUP请求,提供传输协议及客户端端口号,准备传输数据。
6.服务器应答SETUP请求,返回服务器端口号及会话标识符。
7.客户端发送PLAY请求,请求播放视频。
8.服务器应答PLAY请求,返回RTP包序列号、时间戳;同时服务器开始对视音频流打包传输。
9.客户端发送TEARDOWN请求,关闭连接,终止传输。
10.服务器应关闭,传输中止。

0 0