流媒体发端于美国,又称流式媒体,是一种新的媒体传送方式。简单的说就是利用互联网来传递并能被用户一边下载一边观看的活动媒体信息。流媒体技术一般都有三个方面的表现,分别是编码器(编码技术)、播放器(播放支持)和流服务器,三者缺一不可。仅仅具有其中一到两个要素是不能被称为流媒体技术的。
目前市场上主流的流媒体技术有三种,分别是RealNetworks公司的RealMedia、Microsoft的Windows Media和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议这三个关键要素在里面。
Apple公司的QuickTime是一个非常老牌的媒体技术集成,是数字媒体领域事实上的工业标准。之所以说集成这个词是因为QuickTime实际上是一个开放式的架构,包含了各种各样的流式或者非流式的媒体技术。QuickTime是最早的视频工业标准,1999 年发布的QuickTime 4.0版本开始支持真正的流式播放。由于QuickTime本身也存在着平台的便利(Mac OS),因此也拥有不少的用户。QuickTime在视频压缩上采用的是Sorenson Video技术,音频部分则采用QDesign Music技术。QuickTime的特点是其本身所具有的包容性使得它是一个完整的多媒体平台,因此基于QuickTime可以使用多种媒体技术来共同制作媒体内容。同时,它在交互性方面是三者之中的。例如,在一个 QuickTime 文件中可同时包含MIDI、动画GIF、FLASH和SMIL等等格式的文件,配合QuickTime的Wired Sprites互动格式和,可设计出各种互动界面和动画。
RealNetworks公司在20世纪90年代中期首先推出了流媒体技术,并随着互联网的急速发展而壮大了自身,在市场上处于主动地位,并拥有最多的用户数量。目前在编码方面主要技术是RealMedia Codec 8。由于RealMedia发展的时间比较长,因此具有很多先进的设计,例如,Scalable Video Technology可伸缩视频技术可以根据用户电脑速度和连接质量而自动调整媒体的播放质素。Two-Pass Encoding两次编码技术可通过对媒体内容进行预扫描,再根据扫描的结果来编码从而提高编码质量。特别是SureStream自适应流技术,可通过一个编码流提供自动适合不同带宽用户的流播放。RealMedia 音频部分采用的是Real Audio,该编码在低带宽环境下的传输性能非常突出。RealMedia通过基于 SMIL并结合自己的RealPix和RealText技术来达到一定的交互能力和媒体控制能力,不过相比QuickTime来说还有一段距离。
Microsoft是三家之中进入这个市场的,但利用其操作系统的便利很快便取得了一定的市场份额。Windows Media 编码方案的目前版本也称为8.0,当然版本号现在已经成为商品促销的一个手段了。视频方面的Windows Media Video 8采用的是MPEG-4视频压缩技术,音频方面采用的是微软自己开发的 Windows Media Audio技术。Windows Media 的关键核心是MMS协议和ASF数据格式,MMS用于网络传输控制,ASF则用于媒体内容和编码方案的打包。目前Windows Media在交互能力方面是三者之中最弱的,自己的ASX格式交互能力不强,除了通过IE支持SMIL之外就没有什么其他的交互能力了。
其实从一般的角度来看,这三种技术之间的差异并不大。总的来说,如果使用 Windows 服务器平台,Windows Media 的费用最少。QuickTime 在性能价格比上具有优势,而RealMedia则在用户数量上有优势。但是,互联网的发展证明了市场并不是永远属于先来的开拓者的。Microsoft借助平台的便利挥舞着集成的利剑在迅速地拓展自己的势力范围。虽然在现阶段Windows Media的功能并不是,用户也不是最多,但随着Microsoft在Windows Media上面的大力投入终有一天Windows Media会成为的流媒体技术。
即使流媒体有自身的特点,通过技术与内容的相互结合可以使用户产生依赖性,或者说,通过某种流技术提供的内容越多该种技术就越有生命力。但在Netscape的前车之鉴下,另外两家公司为了避免与Microsoft正面交锋,都力图将自己的手伸到新的还没有被Microsoft介入的领域中去。比如RealNetworks最近的举措包括有向电视录像设备生产商提供软件技术、研发在手机上投放视频和音乐的技术等等。并且在市场上与传统的内容提供商合作以控制媒体内容等。而Apple则致力于利用Mac电脑所特有的多媒体特性去加强QuickTime的功能,研究流媒体以外的技术比如QuickTime VR等,并通过向第三方技术开发商比如On2等提供二次开发许可等方式来增加自己的影响力。至于Microsoft则花大力气改良Windows Media,将要推出的代号为“Corona”的第三代Windows Media技术所具有的各种新特性(Instant On, Always On等)已经在业界带来巨大的反响。
MMS协议
微软的专用流媒体协议,该协议支持客户机使用Windows Media Player作为播放器来访问流媒体服务器。默认使用的TCP端口为1755,UDP端口为1755。协议使用方式为:mms://流媒体服务器名(IP地址)/发布点/流媒体文件名。
RTSP协议
由RealNetworks和Netscape公司共同开发的,定义了一对多应用程序如何有效通过IP网络传送多媒体数据,使用TCP或RTP协议完成数据传输。RTSP协议使用TCP端口554。协议使用方式:rtsp:// 流媒体服务器名(IP地址)/发布点/流媒体文件名。
HTTP协议
用户对Windows Media服务器配置后,可以使用最普通的HTTP协议将传递的内容转换为流,Windows的Media服务器使用了WMS HTTP服务器控制协议插件来控制与流媒体客户机的连接。
流式传输的实现需要缓存。因为Internet以包传输为基础进行断续的异步传输,对一个实时A/V源或存储的A/V文件,在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。——流式传输的实现需要合适的传输协议。由于TCP需要较多的开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。流式传输的过程一般是这样的:用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检流媒体制作出来;然后客户机上的Web浏览器启动A/VHelper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。
A/VHelper程序及A/V服务器运行实时流控制协议(RTSP),以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能相似,RTSP提供了操纵播放、快进、快倒、暂停及录制等命令的方法。A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),一旦A/V数据抵达客户端,A/V客户程序即可播放输出。
需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/VHelper程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器。
流媒体技术广泛用于多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、 实时视频会议等互联网信息服务的方方面面。流媒体技术的应用将为网络信息交流带来革命性的变化,对人们的工作和生活将产生深远的影响。一个完整的流媒体解决方案应是相关软硬件的完美集成,它大致包括下面几个方面的内容: 内容采集、 视音频捕获和压缩编码、内容编辑、内容存储和播放、应用服务器内容管理发布及用户管理等。