Real Time Streaming Protocol 或者 RTSP(实时流媒体协议),是由 Real netw ork 和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 回应该请求的信息 S->C:发送流媒体数据 5.C->S:TEARDOWN request //C 请求关闭会话 5.S->C:TEARDOWN response //S回应该请求 上述的过程是标准的、友好的 rtsp 流程,但实际的需求中并不一定按部就班来。 其中第3 和4 步是必需的!第一步,只要服务器客户端约定好,有哪些方法可用,则option请求可以不要。第二步,如果我们有其他途径得到媒体初始化描述信息(比如 http 请求等等),则我们也不需要通过rtsp 中的descr...