流媒体技术 rtp/rtcp/rtsp资料精华!
流媒体技术流媒体是指在网络中使用流式(Sreaming)传输技术进行传输的连续时基媒体,如音频数据流或视频数据流,而不是一种新的媒体。流媒体技术(或称为流式媒体技术)就是把连续的影像和声音信息经过压缩处理后放到网络服务器上,让浏览者一边下载一边观看、收听,而不需要等到整个多媒体文件下载完成就可以即时观看的技术。流媒体技术并不是单一的技术,它是融合流媒体数据的采集、压缩、存储、传输以及网络通信等多项技术之后所产生的技术。
流媒体给互联网带来的变化是巨大的,对于用户来讲,观看流媒体文件与观看传统的音视频文件在操作上几乎没有任何差别。惟一有区别的就是在影音品质上,由于流媒体为了解决带宽问题以及缩短下载时间,而采用了较高的压缩比,因此用户感受不到很高的图像和声音质量。
一.流式传输
流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。
1.顺序流式传输
顺序流式传输是顺序下载,在下载文件的同时用户可观看再线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。
对通过调制解调器发布短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段。尽管有延迟,毕竟可让你发布较高质量的视频片段。
顺序流式文件是放在标准HTTP 或FTP服务器上,易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。
2.实时流式传输
二.流媒体技术原理
多媒体数据必须进行预处理才能适合流式传输,这是因为目前的网络带宽对多媒体巨大的数据流两来说还显得远远不够。预处理主要包括两方面:一是降低质量;二是采用先进高效的压缩算法。
流式传输的过程一般是这样的:
(1)用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的音/视频流实时数据从原始信息中检索出来。
(2)客户机上的Web浏览器启动客户端程序(即一些播放程序),使用HTTP从Web服务器检索相关参数对客户端程序进行初始化。这些参数可能包括目录信息、音/视频数据的编码类型或与A/V检索相关的服务器地址。
(3)客户端程序及流媒体服务器运行实时流控制协议(RTSP),以交换音/视频数据流传输所需的控制信息。RTSP起到一个遥控器的作用,用于客户端对流媒体服务器的远程控制,控制媒体数据流的播放、快进、快倒、暂停等命令。
(4)流媒体服务器使用RTP/UDP协议将音/视频数据传输给客户端程序,一旦音/视频数据抵达客户端,音/视频客户程序即可播放输出。
需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与流媒体服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行客户端程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器。
三.支持流媒传输的网络协议
1.实时传输协议RTP与RTCP
RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
实时传输控制协议RTCP。RTCP(Real-timeTransportControlProtocol)和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
RTCP执行下列四大功能:
主要是提供数据发布的质量反馈。是作为RTP传输协议的一部分,与其他传输协议的流和阻塞控制有关。反馈对自适应编码控制直接起作用,但IP组播经验表明,从发送者收到反馈对诊断发送错误是致关重要的。给所有参加者发送接收反馈报告允许问题观察者估计那些问题是局部的,还是全局的。诸如IP组播等发布机制使网络服务提供商类团体可能接收反馈信息,充当第三方监控者来诊断网络问题。反馈功能由RTCP发送者和接收者报告执行。
RTCP带有称作规范名字(CNAME)的RTP源持久传输层标识。如发现冲突,或程序重新启动,既然SSRC标识可改变,接收者需要CNAME跟踪参加者。接收者也需要CNAME 与相关RTP连接中给定的几个数据流联系。
前两种功能要求所有参加者发送RTCP包,因此,为了RTP扩展到大规模数量,速率必须受到控制。让每个参加者给其它参加者发送控制包,就大独立观察参加者数量。该数量用语计算包发送的速率。
第四个可选功能是传送最小连接控制信息,如参加者辨识。最可能用在\"松散控制\"连接,那里参加者*进入或离开,没有成员控制或参数协调,RTCP充当通往所有参加者的方便通道,但不必支持应用的所有控制通讯要求。
2.实时流协议RTSP
实时流协议RTSP(RealTimeStreamingProtocol)是由RealNetworks和Netscape共同提出的,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。
3.资源预订协议RSVP协议
由于音频和视频数据流比传统数据对网络的延时更敏感,要在网络中传输高质量的音频、视频信息,除带宽要求之外,还需其他更多的条件。RSVP(ResourceReserveProtocol)是正在开发的Internet上的资源预订协议,使用RSVP预留一部分网络资源(即带宽),能在一定程度上为流媒体的传输提供QoS。在某些试验性的系统如网络视频会议工具vic中就集成了RSVP。
四.流媒体系统的组成
一个最基本的流媒体系统必须包括编码器(Encoder)、流媒体服务器(Server)和客户端面播放器(Player)3个模块。模块之间通过特定的协议互相通信,并按照特定格式互相交换文件数据。其中编码器用于将原始的音/视频转换成合适的流格式文件,服务器向客户端发送编码后的媒体流,客户端播放器则负责解码和播放接收到的媒体数据。
1、编码器
编码器的功能是对输入的原始音、视频信号进行压缩编码。不同的流媒体业务,对编码器有不同的性能要求。目前常用的视频编码方案有MPEG-4、H.264和Microsoft公司的Windows Media Video采用的AC-1;音频编码方案有MP3、MPEG-2、AAC、AMR和AMR-WB等。多媒体编码器所生成的码流只包含了解码该码流所必需的信息,不包含媒体间的同步、随机访问等系统信息,因此编码后的多媒体数据还要被组织成为流媒体文件格式用于传输或存储。
2、流媒体服务器
通常流媒体的播放采用以下三种方式
1.单播
在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放;管理人员也*购买硬件和带宽来保证一定的服务质量。
2.组播
在IP组播技术构建一种具有组播能力的网络上,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机,减少网络上传输的信息包的总量。网络利用效率大大提高,成本大为下降。
3.点播与广播
点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。
广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。 使用单播发送时,需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会非常浪费网络带宽。组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。
3、客户端播放器
音/视频RTP数据包经网络传输到客户端后,先进入一个缓冲队列等待,这个缓冲队列中的所有数据包按照包头的序列号排序,如果有迟到的包,则按序列号重新插入正确的位置上,这样就避免了乱序的问题。
客户端每次从队列头部读取一帧数据,从包头的时间标记中解出该帧的播放时间,然后进行音/视频同步处理。同步后的数据将送入解码器进行解码,解码后的数据被送入一个循环读取的缓冲中等待。一旦该帧的播放时间到达,就将解码数据从缓冲存中取出,送入播放模块进行显示或播放。
五.流媒体文件格式
流媒体文件格式是支持采用流式传播及播放的媒体格式。流式文件格式经过特殊编码,使其适合在网络上边下载边播放,而不是等到下载完整个文件才能播放。将压缩媒体文件编码成流式文件,必须假如一些附加信息,如计时、压缩和版权信息。
六.流媒体应用
1.在线直播
随着Internet的普及网络上舆的资料不再局限于文字和图形,有许多的视频应用需要在网上直播,如世界杯现场直播、春节晚会直播等。对电视台来说,利用流媒体技术实现在线直播,可以最大范围地覆盖观众,能像电视直播一样大致宣传、广告或满足观众需求的目的。
2.视频点播
随着多媒体技术、通信技术以及硬件存储技术的发展,人们已不再满足以往单一、被动的单方向信息获取方式。采用流媒体技术的视频点播(Video on Demand,VOD)的交互式业务,正受到人们的欢迎。现在网上很多的在线影院基本上都是采用RealNetwork公司的RealSystem或微软的Windows Meadia System。
3.远程教育
远程教育系统与传统学校教育相比,突破了时空限制,增加了学习机会,有利于扩大教育规模,提高教学质量,降低教学成本。学习者可以在自己方便的时间、适合的地点,按照自己需要的速度和方式,运用丰富的教学资源来进行教学。目前许多大学都已采用流媒体技术实现了远程教育。
此外,沪江网校也是!流媒体技术在电子商务、远程医疗和视频会议等许多方面都有成功应用。目前流媒体技术的应用主要有宽带和窄带两种方式。窄带方式包括多媒体新闻直播、远程教学、e-Learing、股评分析和视频会议等;宽带方式包括网络电视、KTV、企业培训和多媒体IDC等。