摘 要:本文着重对影响流媒体服务器性能的关键因素进行了分析,并在此基础上提出了一些对流媒体服务器进行配置的建议。
关键词:流媒体 性能 内存 处理速度 磁盘读写 网络吞吐率
流媒体(Streaming Media)是一种以音视频数据流的方式在网络上传递多媒体信息的技术。与传统的多媒体下载不同,流媒体传输具有实时性和连续性的特点。边播放边下载的流式传输方式可以使用户不必等待所有的数据下载到本地。采用不同的码率传输,可以使用户在几十kbit/s低带宽到几十Mbit/s高带宽的不同网络环境中都能在线欣赏到连续不断的较高品质的音视频节目。流媒体技术具有十分广泛的应用领域,如在线直播、网络广告、视频点播、视讯会议、远程教育等。多媒体文件与一般的数据不同,较大的传输负荷将使得网络丢失和拥塞的概率大大增加,因此如何提高音视频传输的服务质量是流媒体技术所面临的最大挑战。
一、技术概述
1. 协议支持
一般的数据传输采用的协议有HTTP或FTP,这两种基于TCP可靠传输机制的协议可以完成普通数据在网络上的传输。对于实时音视频数据的传输业务, HTTP或FTP虽然也能支持,但是却具有较大的局限性。首先,数据的实时性需求无法在传输中得到保证,更不能提供像现场直播这样的高实时性的业务。其次,无法支持如快进快退这样的VCR功能。最后,无法实现实时加密,对数据版权的保护有限。
针对流媒体数据独有的特点,一系列与此相关的传输协议以及一个完善的流媒体传输结构框架被提出,并用以解决上述音视频数据传输中遇到的问题。在新的框架体系中,服务器端建立专门用于传输音视频实时数据流的流服务器,所有在网上传输的数据都需要经过一系列的压缩编码,减小其中的数据冗余,然后再被服务器封装成数据包传输给客户端。由于音视频数据少量的差错和丢失对最终播放质量的影响较小,为了避免采用可靠传输带来的时延,提高数据的实时性,因此实时传输协议 RTP是建立在面向无连接的UDP之上的。原有的服务器端和客户端的可靠连接通信则由另一个实时流协议RTSP来完成。
实时传输协议RTP是专门用于因特网上实时多媒体数据传输的一种协议,一般是在UDP数据包之前建立一个RTP包头,其中包含了一些保证数据实时连续性的信息(如序列号、时间戳等),但RTP也可以在TCP或ATM等其他协议上工作。RTP被定义为在一对一或一对多的传输模式下工作,提供时间信息和流同步。
RTP传输协议有如下一些特点:
(1)协议的灵活性。RTP不具备传输层协议的完整功能,其本身也不提供任何机制来保证实时地数据传输,不支持资源预留,也不保证服务质量。另外,RTP将部分运输层协议功能(比如流量控制)上移到应用层完成,简化了运输层处理,提高了该层效率。
(2)数据流和控制流分离。RTP的数据报文和控制报文使用相邻的不同端口,这样大大提高了协议的灵活性和处理的简单性。
(3)协议的可扩展性和适用性。RTP通常为一个具体的应用来提供服务,通过一个具体的应用进程实现,而不作为OSI体系结构中单独的一层来实现,RTP只提供协议框架,开发者可以根据应用的具体要求进行充分的扩展。
RTP协议本身不提供流量控制和拥塞控制功能,它靠一个专门的实时传输控制协议(RTCP)来实现。RTCP周期性地统计数据包传输时的丢失情况等信息,服务器根据这些反馈信息来制定流量控制的策略,改变传输码率甚至负载类型,大大提高了实时数据的传输性能。
RTSP 是基于应用层的一个重要的流会话控制协议,建立在TCP协议上,在整个流媒体应用过程中提供整套会话服务,控制着整个媒体流的播放过程。它提供用于音频和视频流的“VCR模式”远程控制功能,用于控制流媒体的播放、暂停、记录等操作。同时,服务器和客户端之间会话的建立与销毁等信息的交互也来自RTSP的支持。
2. 相关技术
为了提供更高质量的服务,在流媒体业务中涉及了相当多的技术。首先,视频在传输之前需要压缩成适合于网络传输的码流。在编码中,一种方法是精细可扩展行编码(FGS),这种压缩机制把视频压缩成基本层和增强层位流,通过位平面编码实现连续的增强层速率控制。
传输信道中的差错控制也可以提高视频传输的质量。前向纠错FEC是其中的一种差错控制方法,可以通过在各个数据包中附加一定的冗余信息来恢复丢失的数据包;也可以通过在编码时在码流中采用一些特殊的编码方式,比如逆向编码、多描述编码、分层编码等来减少数据丢失对质量的影响;还可以在客户端对丢失的信息进行插值预测,尽量削弱差错所带来的影响。
除了采用差错控制来保证传输数据的质量,还可以采用拥塞控制的方法来减轻网络拥塞程度。一种方法是在服务器端根据反馈信息调节数据的发送速率,另一种方法是由客户端增加和减少信道数量来进行速率的调整。两种方法也可以结合起来使用。
媒体流之间的同步通过媒体同步机制来实现。不同的媒体之间的传输和播放是独立的,而最终播放的所有媒体又需要集成在一起,例如音频、视频和其他文本信息的同步播放。流内同步、流间同步和对象间同步是三种类型的同步机制,其本质是在媒体内或媒体间说明时间关系。同步多媒体集成语言SMIL是一种实现媒体同步控制的标准。
数据的安全性由数字版权管理DRM来保证。这是保护多媒体内容免受未经授权的播放和复制的一种方法。如果数字版权无法得到保证,流媒体业务将失去商业运营的可能。DRM通过对内容加密来保护数据和通过附加使用规则来判断用户的使用权限。
二、系统组成
1. 基本组件
流媒体是由各种不同的互相通信交互的软件系统构成的,一个最基本的流媒体系统必须包括编码器(Encoder),服务器(Server)和播放器(Player)三个模块,如图1所示。模块之间通过特定的协议互相通信,并按照特定格式互相交换文件数据。其中编码器用来将原始的音视频转换成合适的流格式文件,服务器向客户端发送编码后的媒体流,客户端播放器则负责解码和播放接收到的媒体数据。
编码器对原始的音视频媒体源进行一定格式的压缩编码,编码的方式有实时和离线两种。实时编码主要应用在实时直播服务中,由于对数据实时性的要求较高,因此对编码器的性能要求也较高,其输入一般是模拟的音视频信号,也可以输入数字的媒体设备信号如DVD光驱。由于单一的码率无法满足多种用户的需求,实时编码可以采用多个编码器并行编码的方法,输出不同码率的码流。离线编码对实时性的要求更低,一般是通过一个软件平台直接读取并编码需要压缩的音视频数据,如果提供的是其他压缩格式的数据,则需要先解码并转码成所需格式。这种方法一般是服务于对实时性要求不高的点播业务,因此最后需要将其封装为一个媒体文件,供服务器进行传输。编码器的性能好坏将直接决定服务质量的优劣,目前最新的H.264视频编码器无论在编码效率还是在图像质量上都优于现有的各种视频编码标准。服务器负责将编码数据封装成RTP数据包发送到网络中。每次从节目中获取一帧数据,然后分成几个RTP数据包,并将时间戳和序列号添加到RTP包头,属于同一帧的数据包具有相同的时戳。一旦到达数据包所应播放的时间后,服务器便将这一帧的音视频数据包发送出去,然后再读取下一帧数据。
流媒体系统是无法忽略网络环境的变化所带来的影响的。这些变化包括不断变化的网络吞吐量,不断变化的传输延迟,以及由于网络拥塞中丢包而不断变化的丢包率。对付这种网络变化的办法就是在客户端播放前预先缓冲足够的数据,以此来平滑网络变化的影响。
音视频RTP数据包经互联网络传输到客户端后,先进入一个缓冲队列等待,这个缓冲队列中的所有数据包按照包头的序列号排序,如果有迟到的包,则需按序列号重新插入到正确的位置上,这样就避免了乱序的问题。
客户端每次从队列头部读取一帧的数据,从包头的时戳中解出该帧的播放时间,然后进行音视频同步处理。同步后的数据将送入解码器进行解码,解码后的数据被送入一个循环读取的缓存中等待。一旦该帧的播放时间到达,解码数据就被从缓存中取出,送入播放模块驱动底层硬件设备进行显示或播放。
2. 业务扩展
(1)集群调度。单台服务器的容量和性能毕竟是有限的,服务器集群调度策略可以将多个服务器并行使用来为更多的用户服务。集群系统通过客户端和多个流服务器之间的一个调度与网管服务器实现。在负载均衡应用中,集中式调度是现在使用较多的一种集群管理模式,系统主要由三部分组成:调度器,位于服务集群的最前端,根据服务集群的负载情况将到来的服务请求转发到后台真实服务器上;服务器池,位于调度器的后端,由一组为用户提供具体服务的Server组成,对用户不可见,用户通过调度器与服务器建立C/S关系;存储池,后台服务器的一个共享存储空间,使得集群中的各台服务器能够提供相同的内容服务。
客户端将用户的请求先传送到调度器,调度器则通过网络管理协议对各节点进行监控,动态获取各节点的状态信息,随时对各节点的性能进行评估,根据当前各节点的负载情况,通过一定的智能算法选择转发至最合适的服务器,从而达到集群中各个服务器间的动态负载均衡。这种方法通过增加新的服务结点大大扩充了服务器支持的并发流数量,克服了单台服务器处理能力的局限性,使得整个流媒体服务的性能和容量得到了无限制的提升。
对于用户来说,整个集群服务器是透明的,也就是不存在每个单独服务器,因此我们必须实现IP隐藏,使得用户无法观察到每个单独服务器的IP,这样可以更好的保证整个集群的负载平衡,因为这样集群的负载是由调度器来统一执行,用户无法自己指定,而且也可以更好的保证系统的安全性。实现IP隐藏的手段很多,在此选择了IP隧道的方式。
(2)网络管理。调度服务器上的网络管理平台通过特定的网管协议来实现各个服务器之间的协调管理,可以选用SNMP作为管理协议,并针对流媒体服务的特点开发了一套流媒体服务集群管理系统。一个SNMP网络管理系统从逻辑上可抽象为四个部分:被管代理,网络管理工作站,网络管理协议,网络管理信息库。网管工作站负责整个网络的管理,监控被管设备状态从而保证网络中的各个设备正常运行。被管代理是驻留在被管理设备上的一个进程,负责收集组织被管设备状态信息,响应管理端访问管理信息库的请求,另外当系统出现问题的时候可以主动向管理端发出通告信息。MIB是管理信息的组织形式,呈树形结构。管理协议则定义了网管工作站和被管设备之间信息交换的接口,双方以约定的格式进行消息传递。
(3)认证计费。作为一个面向用户的多媒体业务,商业运营必须作为其中一个重要的策略被提出。首先,提供流媒体服务必须面向授权用户,因此需要对用户的接入信息进行认证。其次作为一个商业平台,必须对每项服务进行统一的多策略计费。目前流行的用户认证和计费系统遵从RADIUS(Remote Authentication Dial in User Service)协议。整个系统主要实现的功能应该包括:用户接入认证,用户服务授权,服务过程计费,用户信息管理,计费策略管理等。各部分组件包括认证服务器,计费服务器,信息数据库,用户和计费策略管理平台等。需要在流媒体平台上提供用户认证插件,当用户通过Web认证后,还需要流媒体服务器进行身份验证后才能收看节目,避免了用户绕过Web认证而直接用节目URL地址进行点播,提供更高的安全性。认证服务器除了认证接入的用户权限外,还作为代理转发信息到计费服务器。同时计费服务器根据用户级别,节目信息,收看时段信息可采取不同的计费策略。这项业务使得大规模商业运营成为可能,具备其自身的新业务特点,例如时间、流量、多种计费规则、多种媒体格式等等,在选择性、高效性、实时性、可靠性及安全性方面将会提出比电信业务的用户管理和计费系统更高的要求。
(4)内容发布。为了方便用户使用流媒体系统所提供的各类点播或直播服务,所有的服务内容可以以Web页面的形式发布到网上,用户只需要点击自己所需节目的链接,就可以自动启动安装在本地的客户端进行收看。Web服务器可以通过 Apache和PHP等技术实现。为了方便对发布内容的更新,每个节目链接都是指向服务器上的一个链接文件,文件中的内容即为该节目在某台服务器或调度器的地址链接。这样,如果需要更新节目,则只需修改或添加链接文件中内容即可。
三、结束语
随着互联网,多媒体编码技术的不断发展,流媒体业务具有广阔的市场前景,流媒体技术的应用将对人们的工作和生活带来深远的影响。随着流媒体技术的日益成熟,流媒体市场也吸引了越来越多的企业参与竞争,一个全球化的流媒体市场竞争格局已经初步形成,具备巨大发展潜力的流媒体技术将会在未来的互联网应用中占据重要的一席之地。
参考文献
[1] Steve Mack.流媒体宝典.北京:电子工业出版社,2003
[2] Wu D,Hou Y T,Zhu W,et al. Streaming Video over the Internet:Approaches and Directions.IEEE Transactions on Circuits and Systems for Video Technology,2001,11(3)
(DVOL本文转自:中国DV传媒 http://www.dvol.cn)