您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > RTSP协议体系结构1-1rtsp实时流协议(Real-TimeStreaming
RTSP协议体系结构1-1rtsp实时流协议(Real-TimeStreamingProtocol,RTSPc1])是由RealNetworks和Netseape共同提出的,该协议定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据的方法。RTSP在体系结构上位于实时传输协议(ATransportProtocolforReal-TimeApplications,RTP)和实时传输控制协议(RealTimeControlProtocol,RTCP)之上,它使用TCP或UDP完成数据传输。RTSP是一个客户一服务器多媒体节目协议,用于建立并控制一个或几个时间同步的连续视频、音频流的连接。尽管用RTSP交叉传输连续媒体流和控制流是可能的,但通常它用来控制流式多媒体数据在IP网络上的发送,而并不用于连续媒体流的传输。它提供用于音频和视频流的远程控制功能,例如:播放、暂停、关闭等。RTSP是一个应用层协议,用来与RTP、RTCP等更低层的协议一起,提供基于Internet的整套流化服务。它可以选择发送通道(例如:UDP、组播UDP和TCP)和基于RTP的发送机制。1.2RTSP协议的体系结构RTSP协议位于RTP和RTCP之上,它使用TCP或UDP完成数据传输,其体系结构如图1所示。目前,支持基于IP的流媒体网络协议主要有实时传输协议RTP、实时传输控制协议RTCP、实时流协议RTSP、资源预留协议(ResourceReservationProtocol,RSVP))和会话描述协(SessionDe—scriptionProtocol,SDP)。RTSP协议主要用于媒体播放客户端和媒体服务器之间的网络远程控制。RTSP可以使用TCP连接协议也可以使用UDP连接协议,主要根据传输的数据类型来决定。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。1.3RTSP的工作原理RTSP中的所有操作都是通过服务器和客户端的消息应答来完成的,其消息包括请求和应答两类.请求消息的格式如图2。请求消息由请求行、标题行中的各种标题域和主体实体组成。请求行和标题行由ASCII字符组成。图2中的sp域、cr域和lf域分别代表空格字符、回车字符和换行字符。其中的method表示请求命令,主要有以下几种命令。OPTIONS:客户端或服务器端通知另一方自己能接受的选项;DESCRIBE:客户端通过向服务器发送请求URL,接受指定的节目描述或媒体对象;SETUP:让服务器给流分配资源,启动RTSP连接;PLAY:启动SETUP分配流的数据传输;TEARDOWN:释放流的资源,RTSP连接停止。除了状态行之外,RTSP应答消息格式与请求消息的格式相同。状态行包含RTSP的版本号,状态码statuscode和短语phrase,它们组合起来表示客户请求所获得的结果。RTSP客户机和服务器之间的协议交互开始于OPT10N请求/应答,然后客户机为它感兴趣的媒体流发送一个DESCRIBE请求。从服务器返回的应答消息可获得关于这个流的具体信息,比如编码方式等。然后客户端发送一个SETUP请求,其中包括协议集和端口号,客户端通过这些协议集和端口来接收媒体流,服务器把选中的协议和端口应答给客户端。客户端再发送PLAY命令告知服务器通过先前商定的协议来传输数据,还可以发送PAUSE来临时暂停传送,发送TEARDOWN表示结束会话。整个交互过程如图3所示。在RTSP协议中,服务器和客户端之间的通信完全基于消息应答机制,从而实现类似VCR的远程遥控功能。RTSP协议的请求和应答消息主要通过请求方法字段和状态码字段完成。Method请求方法,也就是请求服务的类别,包括(C:用户端,S:服务器端):DESCRIBE:C—s,返回媒体对象的描述。ANNOUNCE:c—s,S—c,请求URL识别的演示或媒体对象描述发送给服务器件。OPTIONS:c—s,s—c,让服务器或客户端互相告诉对方可以被接受的选项。PAUSE:C—s,PAUSE请求引起流发送临时中断。PLAY:C—S,PLAY告诉服务器以SETUP指定的机制开始发送数据;直到一些SETUP请求被成功响应,客户端才可发布PLAY请求。SETUP:C—S,建立与客户端的连接。TEARDOWN:c—s,TEARDOWN请求停止给定URL流发送,释放相关资源。Status—Code状态码,表示请求的方法的可操作情况。在RTSP中的状态码和HTTP协议中的状态码十分类似,是一个三位数字:100:继续;2xx:表示请求成功,可被接受;3xx:重定向;4xx:客户端错误;5xx:服务器端错误。例如,200表示请求已成功,将要执行;而453表示没有足够的带宽。RTSPserverRTSPsessionRTSPclient1建立连接2产生新的SOCKET,以后些客户端的交流由SOCKET完成。〈3DESCRIBE4:SDP信息〉5.OPTIONS6回复服务器文件的命令。〈7SETUP8.。。。。交换〉9play10OK握手完成。11Teardown12关闭SOCKET删除客户端信息。具体实现时,采用C/S结构设计一个的基于RTSP协议的视频服务器。在服务器端,RTSP服务器在默认的端口(一般是554端口号)监听网络请求消息数据包,在收到数据包后,根据RTSP规定的格式进行解析,并作相应的处理,同时形成RTSP格式的应答消息数据包,响应客户端的请求。RTSP服务器在接收到播放流媒体实时数据或文件的请求后,在本地申请并建立新的端口组(RTP端口和RTCP端口,一般前者是偶数端口,后者奇数端口)。此后,服务器端在RTP端口发送包含流媒体文件的RTP数据包,在RTCP端口接收客户端发送的RTCP数据包,并继续在554端口等待别的客户端的RTSP请求。由上面的分析,得到基于RTSP协议的流媒体服务器的模型,如图3所示。1.模拟音视频数据的输入。2.前端视频服务器负责将音视频数据采集编码,并保存到本地或提供RTP传输。3.客户端发送RTSP格式的请求数据包,其中包含客户端要求的流媒体的名字,服务器端在收到该数据包后,解析数据包,若成功解析,就返回该流媒体文件的相关信息,如实际地址等。客户端根据收到的流媒体的实际地址,做进一步的RTSP请求,例如:“播放”、“下载”等。4.服务器端分配RTP、RTCP端口(2N,2N+1);并继续在RTSP端口(如554)等待新的请求。5.客户端与服务器端的RTP、RTCP端口建立连接,准备接收/发送数据。6.服务器端打包流媒体数据成RTP格式并发送。7.客户端接收RTP数据包。8.客户端解析RTP数据包。9.MPEG4解析包进行解析,解析成功交给播放器。l0.客户端根据接收数据的网络情况(如延迟、丢包等),组成一个RTCP格式的数据包,每隔一定时间发送给服务器端,作为服务器自动改善数据发送性能的信息参考。
本文标题:RTSP协议体系结构1-1rtsp实时流协议(Real-TimeStreaming
链接地址:https://www.777doc.com/doc-2848727 .html