文/贾峤 唐靖寅 刘百祥
复旦大学:高清视频多级分发转播之道
文/贾峤 唐靖寅 刘百祥
随着网络多媒体技术的发展,高校校园网用户对高清视频实时转播的需求急剧增加,但复杂的校园网络环境给高清视频转播带来很大的难度。复旦大学使用多级PC服务器构建高清视频转播方案,取得了较好的效果。
近年来,校园内师生个人计算机普及程度已经很高,用户已经习惯并乐于通过网络流式媒体来访问各类音视频服务,而且会优先选择清晰度更高的服务。
伴随着网络视频技术和业务的发展,各类重大体育赛事也开始使用高清晰流媒体进行网络直播,而校内的各类活动也存在向全校师生转播的需求。
目前,复旦大学校园网络已经覆盖到校园中绝大多数的办公、教室、宿舍区域。校园网络出口带宽有限,无法满足大量用户使用公众网络媒体服务商的并发需求。由于网络结构复杂,VLAN繁多,各接入楼宇的网络管理水平不一,校园网络出口众多,设备间差异化较大,组播方式难以实现。
复旦大学的校园网络中常见的视频分发通常为非实时方案,在活动开展中进行录制,延后发布供师生下载。
此外,复旦大学校园网还提供常规清晰度的电视转播,但受服务器自身性能以及带宽限制影响,也无法满足大量用户的更高需求。
本文提出了一个面向校园网络现状的高清视频多级分发转播方案,解决上述问题。其主要思想是对视频源进行编码压缩,基于主控服务器和多级分发服务器相互配合实现复杂校园网络的高清级视频转播,基于用户来源的负载均衡、自动故障恢复等功能。本方案在实际应用中取得了良好的效果。
图1系统框架
图2 工作流程
为了满足集中控制服务器和优化网络传输等目标,整个解决方案的设计如图1所示。整个方案由4个主要功能模块组成,分别为视频编码服务器、中心控制服务器、主转发服务器、次级转发服务器。用户在个人计算机需安装兼容的视频播放器。
主要功能模块
1. 音视频编码服务器
音视频编码服务器配置音视频采集卡,运行编码器实时采集并压制音频视频流,其对CPU有一定的要求,对内存、网络需求较低。我们通过配置同时输出多级码率的音频视频流,以提供多样化的选择。
2. 中心控制服务器
提供用户访问界面,汇总各级转发服务器信息,提供用户身份认证,引导和控制用户访问。
中心控制服务器向分发服务器发布转播指令与网络规则,接受分发服务器运行状态,实时统计并提供显示界面,引导用户访问最合适的分发点。
3. 主转发服务器
主转发服务器将编码服务器输出的原始音视频流分发给各次级分发服务器。为保障服务质量,此服务器的输出用户不可见。
4. 次级转发服务器
次级转发服务器部署于各网络分区,直接从中心控制服务器获取操作指令,对主转发服务器或者上级转发服务器提供的音视频流进行转发,用户直接访问此类服务器。
此类服务器对CPU有一定的要求,对网络要求较高,通常使用双路千兆网卡以至更多配置为端口绑定,以尽量提供高带宽支持更多用户访问。
转发服务器运行守护进程来接受指令和网络规则,汇报自身运行状态,实际的工作流程如图2所示。
转发服务器同时接收主控服务器下发的iptables策略,控制访问来源。
技术要点
1. 端口绑定
在交换机或服务器进行配置,通过多组网络接口绑定整合为一组更高带宽和可用性的链路。在此方案中采用Linux服务器安装ifenslave包进行配置,具体配置举例如下:
表1 视频特征和编码技术要点
表2 视频/音频编码方案
图3 结构未优化前出现的链路带宽瓶颈
2. 编码规则
校区内直播的需求根据视频内容的不同,主要分为以下3个类型:(1)会议、讲座、访谈;(2)体育赛事;(3)文艺演出。这三类视频具有不同的特征,用户需求具有一定的差别,因此在编码时技术要点不尽相同(见表1)。同时,视频编码必须考虑到编码的实时性和客户端显卡硬件解码的要求,兼顾编码器的编码速率和性能较差的计算机实时解码。
对于会议、讲座、访谈类节目,视频主要关注对象为主讲人,场景通常稳定于明亮的室内,因此视频编码的主要目标为保留人物细节。而由于此类节目中以人声为主,因此可以采用较低采样率和较低码率,保留人声音质即可。
对于体育类节目,由于此类节目中存在大范围的运动和大幅度的镜头变化,因此需要较强的运动向量预测算法以满足视频编码的需求。同时,由于体育比赛的实时性很强,所以在编码时需要设置预先缓冲大小,使得客户端只要经过短暂的缓冲即可获得关键帧。而音频编码的质量要求相对降低,保留解说的人声音质和现场音效即可。
对于文艺演出类节目,此类节目具有背景亮度灰暗,前台亮度明显的特征。文艺演出类的视频效果对颜色的鲜艳程度和演出的音质音色都具有比较强的依赖,因此编码时需要考虑到对灰暗部分细节和色彩效果的保留,降低色度的量化方案,并且强化码率重分配以达到保留暗部细节的要求。
复旦大学最初尝试使用单台服务器进行转播,所转播的内容未经编码处理,即导致单个连接码率过高,单台服务器网络带宽成为瓶颈,无法支持多用户并发访问。
各校区间核心网络设备带宽有限,当转播服务器集中于主校区且转播集中时,达到链路瓶颈,导致所有用户无法正常访问转播服务,出现延迟或者中断。
图3即为结构未优化前出现的链路带宽瓶颈,跨区域访问造成了不必要的带宽占用,以致影响到正常的网络服务。
基础设备
中心控制服务器:需求相对较低,与主转发器并用单台设备。
视频编码服务器:CPU较强的服务器进行视频编码。
主转发服务器:由于转播数量并不同,使用编码服务器同时承担主转发服务器功能。考虑到网络带宽压力,我们使用千兆网络。由于会对2路以上的高清视频进行多码率实时压制,我们采用了一台DELL R905服务器,配置4×4核AMD Opteron 8380,16G内存,内置4×1000M网卡。
分发服务器:多台单CPU或者双CPU服务器,分散部署于各校区,根据校区情况配置为双千兆网络接口或者4千兆网络接口绑定,以避免出现网络带宽瓶颈。这里多采用1U的服务器,依照校区差别选择CPU个数,这里多采用DELL R410和DELL R610服务器。
编码规则
综合评定各种编码方案后,本方案决定采用H.264 AVC作为视频编码方案,使用x264作为编码器,采用AAC作为音频编码方案,使用faac作为音频编码器,使用MPEG2-TS作为封装格式,以HTTP协议作为传输协议。通过一定的实验和探索,实际部署时针对此三类视频应用的不同编码方案(见表2),在保证质量的前提下能够尽量节约带宽。
实际使用的客户端程序
由于视频流采用H.264标准编码,因此所有兼容H.264解码标准的视频播放器均可以播放。经测试证明,Windows自带的Windows Media Player系列、开源且跨平台的VLC、MPlayer播放器、基于iOS的OPlayer等多款播放器可以流畅播放高清视频流。
性能调优
服务内容规划:用户会优先尝试访问高清晰度的转播,但仍有部分老设备无法播放高清视频流,因此提供高码率流的同时仍须提供少量低码率流,根据实际经验,比例大约在10∶1。
基于用户来源的负载分配:由于用户来源位置信息可获取,可以依照校园网络结构对不同来源用户进行分发,在主控服务器端进行条件限制,可以有效地避免出现跨校区数据传输所带来的不必要网络压力。
RRD日志分析:使用RRDtool生成持续连接状态图,辅助分析各服务器在线流量,有利于协助规划分发服务器数量。效果参见图4。
2010世界杯期间,为了满足校内用户在线观看的需要,复旦大学提供7台分发服务器为6个分校区的用户进行服务。
图4 RRDtool生成的持续连接状态
2010世界杯期间,为了满足校内用户在线观看的需要,我们提供7台分发服务器为6个分校区的用户进行服务,提供720p(码率4Mbps)和480p(码率1Mbps)的多种分辨率供选择,在不影响正常网络服务的情况下提供2000人同时在线的峰值。
在多校区的视频会议工作中,我们使用相同的结构,通过现场服务器直接采集摄像设备输出,也满足了工作会议等进行多校区直播的需求。
在极端情况下,还可以采取P2P模式,将用户也作为转发节点,在小范围内为其他用户转发数据。同时,也可以让用户在同一交换机内进行组播,这样能更好地应对重大会议活动、体育赛事转播时的大量密集请求。
本文介绍的转播方案基于信息化部门常规硬件,面向多校区分布的校园实际网络环境,服务容量可以灵活地伸缩扩展,无需特殊的客户端软件,用户体验较好。我们将进一步扩展该方案,整合用户授权,进行更细致的服务划分。
(作者单位为复旦大学信息化办公室)