流媒体报告
1.1 概述
所谓流媒体是指采用流式传输的方式在在网络上传输的媒体格式,如音频、视频或多媒体文件。流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,在计算机中对数据包进行缓存并使媒体数据正确地输出。流媒体的数据流随时传送随时播放,只是在开始时有些延迟。显然,流媒体实现的关键技术就是流式传输,流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可利用解压设备对压缩的多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。该技术先在电脑上创造一个缓冲区,于播放前预先下载一段资料作为缓冲,当网路实际连线速度小于播放所耗用资料的速度时,播放程序就会取用这一小段缓冲区内的资料,避免播放的中断,也使得播放品质得以维持。
1.2 流媒体文件格式
1.2.1 RA的音频格式和RM视频影像格式
RA格式是Real Networks公司所开发的一种新型流式音频Real Audio文件格式。RM格式则是流式视频Real Video文件格式,主要用来在低速率的网络上实时传输活动视频影像,可以根据网络数据传输速率的不同而采用不同的压缩比率,在数据传输过程中边下载边播放视频影像,从而实现影像数据的实时传送和播放。客户端可以通过Real Player播放器进行播放。
1.2.2 ASF格式
Microsoft Media technology的ASF也是流行一种网上流媒体格式。它的使用与Windows操作系统是分不开的,其播放器Microsoft Media Player已经与Windows捆绑在一起,不仅用于Web方式播放,还可以用于在浏览器以外的地方来播放影音文件。
1.2.3 H.263格式
也是3GPP的规范之一,扩展名为AVI,特征有:
1.关于码率低于64kbit/s的窄带信道视频编码建议。
2.在H.261建议的基础上发展起来,其桢频为每秒10桢以上
3.图像分辨率为175X144像素(QCIF),或128X96像素(Sub-QCIF)
1.2.4Nancy格式
只有Mpeg-4方式的1/10以下的负荷Mpeg-4使用小数点运算的离散余弦变换(DCT)、动向预测(motion estimate)、哈夫曼( Huffman )符号和run length符号化方式。Nancy Codec 只要求4种操作、比较和比特转换( bit-shift ) 。而不采用DCT,ME, and Run Length. 可以先行在3G服务之前提供视频内容服务,譬如说视频邮件,视频下载等。
特征
1.软件实时编码
2.最轻量的编码/解码器,低消耗电力,高容错性
3.极高性的价比,低成本的基础投资
但是Nancy不是3GPP的解决方案。
1.2.5 比较
媒体类型 优点 缺点 3GPP标准 建议
RM 成熟标准 压缩算法复杂 是 推荐使用
MPEG-4 成熟标准 压缩算法复杂 是 推荐使用
H.263 成熟标准 压缩算法复杂 是 推荐使用
NANCY 压缩算法简单 非标准 否 不推荐使用
1.3 流媒体技术的主要解决方案
到目前为止,使用较多的流媒体格式主要有Real Networks公司的Real system、Microsoft公司的Windows Media Technology和Apple公司的QuickTime,它们是网上流媒体传输系统的三大主流。
1.3.1 Real system
Real System由媒体内容制作工具Real Producer、服务器端Real Server、客户端软件(Client **)三部分组成。其流媒体文件包括RealAudio、Real Video、Real Presentation和Real Flash四类文件,分别用于传送不同的文件。Real System采用Sure Stream技术,自动地并持续地调整数据流的流量以适应实际应用中的各种不同网络带宽需求,轻松在网上实现视音频和三维动画的回放。
1.3.2 Windows Media Technology
Windows Media Technology是Microsoft提出的信息流式播放方案,其主要目的是在Internet和Internet上实现包括音频、视频信息在内的多媒体流信息的传输。其核心是ASF(Advanced Stream Format)文件,ASF是一种包含音频、视频、图像以及控制命令、脚本等多媒体信息在内数据格式,通过分成一个个的网络数据包在Internet上传输,实现流式多媒体内容发布。因此,我们把在网络上传输的内容就称为ASF Stream。ASF支持任意的压缩/解压缩编码方式,并可以使用任何一种底层网络传输协议,具有很大的灵活性。Microsoft已将Windows Media技术捆绑在Windows 2000中,并打算将ASF用作将来的Windows版本中多媒体内容的标准文件格式,这无疑将对Internet特别是流式技术的应用和发展产生重大影响。
Windows Media Technology由Media Tools、Media Server和Media Player工具构成。Media Tools是整个方案的重要组成部分,它提供了一系列的工具帮助用户生成ASF格式的多媒体流(包括实时生成的多媒体流),这些工具可以分为创建工具和编辑工具两种,创建工具主要用于生成ASF格式的多媒体流;编辑工具主要对ASF格式的多媒体流信息进行编辑与管理,包括后期制作编辑工具,以及对ASF流进行检查并改正错误的ASF Check。Media Server可以保证文件的保密性,不被下载,并使每个使用者都能以最佳的影片品质浏览网页,具有多种文件发布形式和监控管理功能。Media Player则提供强大的流信息的播放功能。
1.3.3 QuickTime
Apple公司于1991年开始发布QuickTime,它几乎支持所有主流的个人计算平台和各种格式的静态图像文件、视频和动画格式,具有内置Web浏览器插件(Plug-in)技术,支持IETF(Internet Engineering Task Force)流标准以及RTP、RTSP、SDP、FTP和HTTP等网络协议。
QuickTime包括服务器QuickTime Streaming Server、带编辑功能的播放器QuickTime Player(免费)、制作工具QuickTime 4 Pro、图像浏览器Picture Viewer以及使Internet浏览器能够播放QuickTime影片的QuickTime 插件。QuickTime 4支持两种类型的流:实时流和快速启动流。使用实时流的 QuickTime 影片必须从支持 QuickTime 流的服务器上播放,是真正意义上的Streaming Media,使用实时传输协议(RTP)来传输数据。快速启动影片可以从任何Web Server上播放,使用超文本传输协议(HTTP)或文件传输协议(FTP)来传输数据。
1.4 流媒体的传输
1.4.1 预处理
多媒体数据必须进行预处理才能适合流式传输,这是因为目前的网络带宽对多媒体巨大的数据流量来说还显得远远不够。预处理主要采用先进高效的压缩算法,将多媒体信息进行压缩。压缩后的编码资料可以利用文本/图形/脚本形式进行多路传输,并且放在能够实现流的方式的文件结构中,也就意味着该文件有时间标记以及其他易于实现流的方式的特点,然后再在客户端进行解码。编码过程是一种艺术,应该考虑不同编码速度的定制性能、包损失的容错性与网络的带宽波动,最低速度下的播放效果、编码/流式传送的成本、流的控制以及其他方面。
1.4.2 缓存
流式传输的实现需要缓存。这是因为Internet以包传输为基础进行断续的异步传输,对一个实时多媒体文件,在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,这是因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,"流"可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。
1.4.3 传输过程
用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的Web浏览器 启动客户程序,使用HTTP从Web服务器检索相关参数对客户程序初始化。这些参数可能包括目录信息、数据的编码类型和与检索相关的服务器地址。
客户程序及服务器运行实时流控制协议(RTSP),以交换传输所需的控制信息。与CD播放机或VCRs所提供的功能相似,RTSP提供了操纵 播放、快进、快倒、暂停及录制等命令的方法。
服务器使用RTP/UDP协议将数据传输给客户程序,一旦数据抵达客户端,客户程序即可播放输出。
1.5 流式传输协议
流式传输的实现有特定的实时传输协议,其中包括Internet本身的多媒体传输协议,以及一些实时流式传输协议等,只有采用合适的协议才能更好的发挥流媒体的作用,保证传输质量。IETF(Internet工程任务组,Internet规划与发展的主要标准化组织)已经设计出几种支持流媒体传输的协议。主要有用于Internet上针对多媒体数据流的实时传输协议RTP(Real-time Transport Protocol)、与RTP一起提供流量控制和拥塞控制服务的实时传输控制协议RTCP(Real-time Transport Control Protocol)、定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据的实时流协议RTSP(Real-time Streaming Protocol)。
1.5.1 实时传输协议RTP
RTP(Real-time Transport Protocol)是用于Internet 上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP 会话时将使用两个端口:一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送的数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP 提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。
1.5.2 实时传输控制协议RTCP
RTCP(Real-time Transport Control Protocol)和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
1.5.3 实时流协议RTSP
实时流协议RTSP(Real Time Streaming Protocol)是 由Real Networks和Netscape共同提出的,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。
1.5.4 资源预订协议RSVP
RSVP(Resource Reserve Protocol)是正在开发的Internet上的资源预订协议,使用RSVP 能在一定程度上为流媒体的传输提供QoS。