Real Time Streaming Protocol 或者 RTSP(实时流媒体协议),是由 Real network
和 Netscape 共同提出的如何有效地在 IP 网络上传输流媒体数据的应用层协议。RTSP 提供
一 种可扩展的框架,使能够提供可控制的,按需传输实时数据,比如音频和视频文件。源数据
可以包括现场数据的反馈和存贮的文件。rtsp 对流媒体提供了诸如暂停,快进等控制,而它本
身并不传输数据,rtsp 作用相当于流媒体服务器的远程控制。传输数据可以通过传输层的 tcp,
udp 协议,rtsp 也提供了基于 rtp 传输机制的一些有效的方法。
RTSP 消息格式
RTSP 的消息有两大类,一是请求消息(request),一是回应消息(response),两种消息的格式不
同.
请求消息:
方法 URI RTSP 版本 CR LF
消息头 CR LF CR LF
消息体 CR LF
其中方法包括 OPTION 回应中所有的命令,URI 是接受方的地址,例如
rtsp://192.168.20.136
RTSP 版本一般都是 RTSP/1.0.每行后面的 CR LF 表示回车换行,需要接受端有相应的解析,
最后一个消息头需要有两个 CR LF
回应消息:
RTSP 版本 状态码 解释 CR LF
消息头 CR LF CR LF
消息体 CR LF
其中 RTSP 版本一般都是 RTSP/1.0,状态码是一个数值,200 表示成功,解释是与状态码对应 的
文本解释。
简单的 rtsp 交互过程
C 表示 rtsp 客户端,S 表示 rtsp 服务端
1.C->S:OPTION request //询问 S 有哪些方法可用
1.S->C:OPTION response //S 回应信息中包括提供的所有可用方法
2.C->S:DESCRIBE request //要求得到 S 提供的媒体初始化描述信息
2.S->C:DESCRIBE response //S 回应媒体初始化描述信息,主要是 sdp
3.C->S:SETUP request //设置会话的属性,以及传输模式,提醒 S 建立会话
3.S->C:SETUP response //S 建立会话,返回会话标识符,以及会话相关信息
4.C->S:PLAY request //C 请求播放
4.S->C:PLAY response //S 回应该请求的信息
5.S->C:发送流媒体数据