1 流媒体技术
所谓流媒体是指采用流式传输方式在Internet播放媒体文件,即将整个音频、视频等连续媒体文件经过压缩后,由服务器向用户计算机连续和实时传送。用户只需经过几秒或几十秒的启动延时即可进行播放和观看,剩余部分将在后台继续下载,边下载边播放。实现流式传输有两种方法:实时流式传输(Real times treaming)和顺序流式传输(Progressive streaming)。其中实时流式传输需要专用的流媒体服务器与传输协议(如实时传输协议RTP、实时传输控制协议RTCP、实时流协议RTSP和媒体服务器协议MMS等)来保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到,特别适合用于现场直播。
目前支持流媒体技术的解决方案主要有RealNet works公司的RealSystem,Microsoft公司的Windows MediaTechnology和Apple公司的QuickTime。
2 多播技术
从底层传输模式看,实时流式传输支持单播、广播和多播。所谓多播是指数据源将IP数据包“尽力而为”地发送到共享相同IP地址的一个主机组中,然后利用网络设备进行相应的复制和分发,只有属于该组的成员才能接收到该数据包。显然,对于网上视频直播来说,因为大部分用户接收的数据都是相同的,使用多播传输模式比点对点的数据包传输方式——单播和一点对所有主机的数据包传输方式——广播,在节约网络带宽、减轻服务器负载和分布式网络应用更容易实现等方面有着明显优势。
多播采用IANAIP地址分类中的D类地址,即范围为224.0.0.0~239.255.255.255。在此基础上,CERNET还进一步将该地址空间划分为4个管理域:Internet范围、CERNET主干网、省网和校园网,其中校园网的多播地址空间为239.251.192.0/18。
除此之外,要实现多播至少还要:(1)在主机与路由器之间部署管理组成员关系的Internet组管理协议(IGMP)。(2)在路由器之间部署转发数据包的多播路由协议。一般来说,多播路由协议可以分为两类:一种是密集模式,如DVMRP、PIM-DM、MOSPF等,比较适合于网络带宽充足、组成员分布密集的环境;一种是稀疏模式,如PIM-SM等,比较适合于网络带宽有限、组成员分布稀疏的情况。(3)为了有效抑制多播数据包在链路层的扩散,需要部署IGMPSnooping,它依靠侦听主机与路由器之间通信的IGMP报文将同一多播组的活动成员映射为一个VLAN,在收到多播数据包后,仅向该多播组所对应的VLAN成员转发。
3 系统的设计与实现
系统采用了Real公司RealSystem的流媒体系统,结合IP多播技术,在客户端/服务器模式下,构建了一个可供在线直播,视频点播等服务的流媒体通信系统如图1所示。由于TCP的慢启动特性和丢失重传的可靠性保证,使得它并不适合流媒体传输,更不适合多播。当前大多数研究均是基于UDP的Multicast,而用RTP/RTCP作为信息反馈的框架。因此IP多播(IPMulticast)成为了最好的解决方法。
3.1 RealSystem流媒体系统
3.1.1 RealSystem的构成
Real公司的RealSystem流媒体系统是一种性能非常优秀和非常稳定的系统,它在全球有很高的市场占有率。它采用的是一种高性能的自适应压缩算法,生成独特的RM格式文件,可以有很高的压缩比率,并可以适应从56kbit/s到10Mbit/s以上带宽的线路要求。Real公司的流媒体系统目前在实时网络直播领域无人可以替代,有大量的实际方案可供选择,而且可以适应各个平台的操作系统。目前可以选择的平台有NT、Linux、Solaris、UNIX、AIX及Irix系统等,是目前支持平台最多的一个系统,其工作原理如图2所示。
3.1.2 RealSystem中使用的通道和协议
在Real公司的Server端使用两种通道与客户端软件Realplayer通信:一种是控制通道,用来传输诸如“暂停”、“向前”等命令,使用TCP协议;另一个是数据通道,用来传输实际的媒体数据,使用UDP协议。如图2所示,在RealSystem中,通信过程可分为如下两部分。
第一,当编码器需要向Real服务器端传输压缩好的数据时,通常使用UDP协议与Real的服务器端通讯。RealProducer(是Real公司的编码工具)可以设置成使用TCP协议的方式向服务器传输数据。
第二,当用户在浏览器上点击一个指向媒体文件的链接时,Realplayer打开一个与Real服务器的双路连接,通过这个连接与Real服务器之间来回传输信息。一旦Real服务器接受了客户端的请求,它将通过UDP协议传输客户请求的数据。
3.2 网络支持
为了可以在不同VLAN间转发多播数据包。因此,必须把交换机配置成IGMP查询路由器,并在相应的端口启用PIM-DM多播路由协议,具体配置命令如下:
全局模式:ipmulticast—muting
ruterpim
在每个端口(interface)配置模式:ippim
接下来,为了降低多播流量使其只转发收到组成员报告的IP多播组,需要开启IGMPSnooping。具体配置命令如下:
全局模式:ip igmpsnoping vlan
mrouterinterface
其中:vlan—id为交换机所包含的虚网号,为上联到多播路由器或交换机的端口。
3.3 视频服务器
实时视频服务器是由流服务器硬件平台与运行其上的流服务器软件RealServer9.0共同完成,主要功能是完成流媒体的存放、控制和发布。RealServer支持两种多播发布方式:反向信道多播和可伸缩多播。也就是说,将一个现场直播流同时传递给多个客户端,而无须为每一客户的连结发送一个单独的数据流,客户端只需连结到这个数据流,而不是连结到服务器上,就可观看直播了。由于反向信道多播在每一个客户端和服务器之间还保持了一个用于统计和控制信息交互的控制信道,所以还不能算是真正意义上的多播。因此,我们仅讨论可伸缩多播的配置。在RealSystem管理器中,单击左边的菜单项“可伸缩多播”,就可以配置可伸缩多播:首先指定可伸缩多播的加载点(默认为/scalable/),然后为要转播的实况流创建一个频道(Channe1)。在本系统中与频道有关的参数主要有启用频道(yes)、虚拟路径(*)、端口范围(9000~9099)、IP地址(239.251.192.0~239.251.192.99)等。
3.4 Realplayer客户端播放器
浏览器通过HTTP(超文本传输协议)协议向Real服务器发出请求,URL请求中包含激活RAMGEN的参数,指向被请求SMIL文件的URL引发RAMGEN自动产生一个包含SMIL文件位置的RAM文件,这个文件将被传送给浏览器。RealPlayer播放软件接受浏览器传递过来的RAM文件,然后用RTSP与RealServer进行通信,请求该RAM文件中包含的SMIL文件。根据在SMIL文件中包含的信息,Realplayer向RealSe-rver请求、接受并播放媒体元素。
客户端播放器是提供给上网用户观看流媒体的工具软件RealPlayer或RealOne,主要功能是播放服务器端发布的多媒体流(如视频、音频、图像等)。在RealPlayer和RealOne中,访问可伸缩多播流的URL格式如下:
http://视频服务器的IP地址:端口号/可伸缩多播的加载点/虚拟路径/流文件的名称.Sdp
3.5 基于IP多播技术的优势及意义
通过基于标准的网络平台的IP多点映射支持(即IP多播技术),Real可只传输单一的数据流,就能服务高达数千计的使用者,而播放质量不会有任何的区别,只须在支持MultiCast的网络中简单配置,就可较之与古典的UniCast在效率上有了明显的提高。IP多播技术的应用能够降低占用带宽,减轻服务器负荷,并能改善传送数据的质量,尤其适用于大量带宽的多媒体应用。基于IP多播技术的流媒体视频系统的完成具有着重要的意义,优势表现如下。
(1)在带宽方面,对于流媒体系统来说,大量的用户经常要在大致相同的时间里访问相同的节目,显然用IP多播来发送节目是明智的,使得网络带宽得到更有效的利用。
(2)在服务器负载方面来说,如果流媒体系统使用IP多播来发布媒体节目,就不需要购买越来越高性能的服务器以满足客户数量的增长。很明显,IP多播的主要优势在于通过大大减少需要转发和处理的数据量,降低所需服务器性能。