在RTSP协议文档中有这样的描述:实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流有可能交叉,但RTSP 本身通常并不发送连续媒体流。换言之,RTSP 充当多媒体服务器的网络远程控制。
正因为如此,我们经常可以看到,RTSP协议的内容当中,在请求串中均带有会话状态,如SETUP、PLAY、PAUSE等,这就是RTSP的状态。虽然RTSP 中很多方法与状态无关,但下列方法在定义服务器流资源的分配与应用上起着重要的作用:
SETUP:让服务器给流分配资源,启动 RTSP 会话。
PLAY 与RECORD:启动 SETUP 分配流的数据传输。
PAUSE:临时停止流,而不释放服务器资源。
TEARDOWN:释放流的资源,RTSP 会话停止。
标识状态的 RTSP 方法使用会话(session)标题域识别RTSP 会话,为回应SETUP请求,服务器生成会话标识。
一个RTSP协议的内容当中拥有非常多的参数,这些参数包括但不限于会话状态、RTSP协议版本、请求URL、会话标识、正常播放时间、回应的状态代码等等。
关于RTSP协议的详细介绍可以查阅RFC2326文档,在此,笔者提供了中文版和英文版的下载地址,如下:
RTSP(CN):http://download.csdn.net/detail/ainyko/8066997
RTSP(EN):http://download.csdn.net/detail/ainyko/8067019
在SharpStreaming项目中,将会使用到的RTSP会话状态包括:OPTIONS、DESCRIBE、SETUP、PLAY、PAUSE、TEARDOWN、GET_PARAMETER、SET_PARAMETER。
将会使用到的状态码(Status-Code)包括但不限于:"200"(OK)、"400" (Bad Request)、"401" (Unauthorized)、"404" (Not Found)、"405" (Method Not Allowed)、"461" (Unsupported transport)。