简介
RTSP协议即实时流协议(Real TIme Streaming Protocol,RTSP)是一种网络应用协议,用以控制流媒体服务器。流数据本身的传输不是RTSP的任务,大多数RTSP服务器使用实时传输协议(RTP)和实时传输控制协议(RTCP)结合媒体流传输。
RTSP由RealNetworks公司,NetScape公司和哥伦比亚大学开发。
RTSP与HTTP
虽然RTSP协议在某些方面与HTTP类似,RTSP定义了控制多媒体播放控制顺序。HTTP是无状态的,但是RTSP是具有状态的,当需要跟踪会话时使用标识符。RTSP和HTTP一样使用TCP来维护端到端的链接,大多数RTSP控制消息由客户端发送到服务器,一些命令从服务器到客户端传播。RTSP协议使用554端口,http使用80端口。
RTSP消息
RTSP的消息有两大类,一是请求消息,一个是回应消息,两种消息的格式不同。
请求的消息格式如下:
方法 URI RTSP版本 CR LF
消息头 CR LF CR LF
消息体 CR LF
其中方法包括OPTIONS回应中所有的命令
响应的格式消息如下:
RTSP版本 状态码 解释 CR LF
消息头 CR LF CR LF
消息体 CR LF
其中RTSP版本一般都是RTSP/1.0,状态码200表示成功,对应的状态码说明如下:
分类 | 描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
RTSP中定义的方法有如下
rtsp中定义的方法有:OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE, GET_PARAMETER ,SET_PARAMETER
下面是RTSP的基本请求(C代表客户端,S代表服务端)
OPTIONS请求,OPTIONS请求返回服务器将接受的请求类型
C->S :
OPTIONS rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 1
Require: implicit-play
Proxy-Require: gzipped-messages
S->C:
RTSP/1.0 200 OK
CSeq: 1
Public: DESCRIBE, SETUP, TE