随着互联网的普及,利用网络传输声音与视频信号的需求也越来越大。广播电视等媒体上网后,也都希望通过互联网来发布自己的音视频节目。但是,音视频在存贮时文件的体积一般都十分庞大。在网络带宽还很有限的情况下,花几十分钟甚至更长的时间等待一个音视频文件的传输,不能不说是一件让人头疼的事。流媒体技术的出现,在一定程度上使互联网传输音视频难的局面得到改善。流媒体技术发端于美国,在美国目前流媒体的应用已很普遍,比如惠普公司的产品发布和销售人员培训都用网络视频进行。与传统的播放方式不同,流媒体在播放前并不下载整个文件,只将部分内容缓存,使流媒体数据流边传送边播放,这样就节省了下载等待时间和存储空间。网络电视正是结合了流媒体技术的特点应运而生,能够很好地适应当今网络飞速发展的趋势,充分有效地利用网络资源。因此,网络电视的发展离不开流媒体技术,本文着重研究基于流媒体技术的网络电视的应用和发展。
1流媒体的技术
1.1 流媒体技术的原理
流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。这个过程的一系列相关的包称为“流”。流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体。流媒体技术全面应用后,人们在网上聊天可直接语音输入;如果想彼此看见对方的容貌、表情,只要双方各有一个摄像头就可以了;在网上看到感兴趣的商品,点击以后,讲解员和商品的影像就会跳出来;更有真实感的影像新闻也会出现。
如果将文件传输看作是一次接水的过程,过去的传输方式就像是对用户做了一个规定,必须等到一桶水接满才能使用它,这个等待的时间自然要受到水流量大小和桶的大小的影响。而流式传输则是,打开水头龙,等待一小会儿,水就会源源不断地流出来,而且可以随接随用,因此,不管水流量的大小,也不管桶的大小,用户都可以随时用上水。从这个意义上看,流媒体这个词是非常形象的。
流式传输的实现需要缓存。因为Internet以包传输为基础进行断续的异步传输,对一个实时A/V源或存储的A/V文件,在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。流式传输的实现需要合适的传输协议。由于TCP需要较多的开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。流式传输的过程一般是这样的:用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的Web浏览器启动A/VHelper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。
需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器,其基本原理如图1所示。
1.2 流媒体技术的实现过程
流媒体系统包括以下五个方面的内容:
(1)编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式。
(2)流媒体数据。
(3)服务器:存放和控制流媒体的数据。
(4)网络:适合多媒体传输协议甚至是实时传输协议的网络。
(5)播放器:供客户端浏览流媒体文件。