张天兵,张云翔,彭启伟,冯敏,王鹏,罗旺
(1.南瑞集团公司(国网电力科学研究院)江苏南京210003;2.国网江苏省电力公司信息通信分公司江苏南京210024)
基于混杂模式的音视频质量分析的设计与实现
张天兵1,张云翔2,彭启伟1,冯敏1,王鹏1,罗旺1
(1.南瑞集团公司(国网电力科学研究院)江苏南京210003;2.国网江苏省电力公司信息通信分公司江苏南京210024)
近些年,随着网络音视频会议日益普及,会议中的终端音视频流质量问题,例如视频流图像模糊,音频丢帧等也受到越来越多的关注。本文提供了一种检测方式:会前音视频质量检测,该方式一定程度上解决了终端音视频质量问题。这个方式采用特殊网络模式——混杂模式,该模式抓取从交换机指定端口镜像出来的实时数据,送给服务器解码,解码后数据交给音视频质量检测模块,最后将检测结果送报业务检测模块。试验结果表明,该服务能很好的预警会前检测终端音视频质量问题,并且工程实施方便。
混杂模式;FFmpeg;音视频质量分析;音视频数据解码
近几年,随着网络技术的发展,网络带宽越来越高,多媒体技术发展迅猛,视频监控、会议电视等多媒体系统也得到了迅速的发展,在上述系统中,音视频质量是影响系统质量的关键因素。本文分析网卡在混杂模式下,音视频质量的评估方法,我们采用开源程序FFmpeg和WINCAP来实现音视频质量评估服务模块,并将此模块运用在会议电视智能化运维系统中,通过对该服务模块的部署,完成视频会议系统中对音视频质量的评估工作,最终体现出本文所设计服务模块的可行性。
音视频会议,即提供音频和视频服务的远程会议。音视频会议系统则是通过网络通信技术来建立虚拟会议,使得在地理上分散的用户可以通过图形、声音等方式进行交流,支持远距离的信息实时通讯与共享。音视频会议为人员之间的协同工作提供了较为真实、直观的体验,对教育、医疗等行业也有着举足轻重的作用。
典型的音视频会议系统由音视频终端,通信网络及MCU(网络音视频转发单元)构成。
在音视频设备中使用较多的音频编码格式主要有:G722、G711、G729;视频格式则主要为H264。
本设计选用的音频编码格式是Gxx系列,视频编码格式是H264。经简单的测试比较,我们选定G729为音频编码格式。表1为音频编码标准数据。
从表1可以看出,G729打包时间短,带宽占用低,同时能够很好的保证动态音频质量,较之其它格式最适合在网络音视频会议中使用。
H.264/AVC是一种新的视频标准。与旧标准相比,它提供了较为简易的设计标准,能够在更低带宽下实现高质量的视频。另一优势在于,它为各种应用、网络及各类的视频系统提供了足够的灵活性,如中,高、低带宽,高、低视频分辨率,广播,DVD存储,RTP/IP网络,ITU_T多媒体电话系统等。
本服务部署的操作系统环境是Windows server,开发工具选用Microsoft Visua1 studio c++2010。
2.1整体设计
2.1.1整体设计框架
图1 音视频会议系统框架图
音视频会议系统的整体设计方案如图2所示,MCU控制系统由网络管理和会议控制两部分系统组成,此中的网络管理系统管理MCU级的主级网络架构,通过MCU获取音视频终端的信息,并对其进行控制此中的网络管理系统管理音视频终端级的次级网络架构。这也是大多数音视频会议所采用的设计方案,如遇一些大型企业下设多个分公司的情况,那么就需要设计分层转发音视频的方案,将MCU设立多级级联以实现各个分公司联动。
2.1.2音视频质量评估框架
所有终端先接入交换机,再通过交换机接入到MCU。此部署方案是在交换机上做一个端口镜像,只要是由该交换机交换的音视频数据都会通过混杂模式抓取,将得到的音视频数据整合处理并分析,最后解码成音视频帧,发送给质量分析服务模块,最终得到该终端的音视频质量详细数据。
2.2逻辑设计
音视频质量分析的整体流程如图2所示。
图2 质量分析流程
图示是一次音视频质量评估的过程,细节包括以下几点。
2.2.1端口镜像获取音视频数据
端口镜像(port Mirroring)功能通过在交换机或路由器上,将一个或多个源端口的数据流量转发到某一指定的端口来实现对网络的监听,指定端口称之为“镜像端口”或“目的端口”,在不严重影响源端口正常吞吐流量的情况下,可以通过镜像端口对网络的流量进行监控分析。我们利用这个特性,将音视频源发送到指定端口,然后进行网卡混杂抓取。之所以采用端口镜像,是因为本方式对网络的改造代价最低,只需要开放交换机或者路由器的一个端口作为专用的端口镜像就可以了,相当于减少了一套终端数量。端口镜像的设置简单,按照交换机说明书设置即可。
2.2.2网络环境探测
网络环境是指将分布在不同地点的多个多媒体计算机在物理上进行互联,依据某种协议互相通信,实现软、硬件及其网络文件共享的系统。这个环境通常会根据各个公司的需求来进行定制,如针对安全级别的需求。音视频设备通常是在私有网络环境中架设,所以它的网络环境也是复杂多样。评估服务采用的算法是特殊值分析算法,在网络音视频流的开始都带有特殊字节码,根据该字节码获取到音视频流的开始段。将得到的数据过滤掉IP层,再过滤掉UDP层,得到UDP的数据,这个数据就是音视频数据。
2.2.3音视频解码
音视频解码的流程,首先整合从网络中传输出来并经过封装后的数据包,根据音频数据特征参数,获取原始音视频数据起始地址,根据起始地址从网络数据中提取原始音视频数据,将音视频数据按照帧格式重新组装,最后通过FFMPEG来解码。
2.2.4音视频质量评估
音视频质量评估算法是模块的关键。通过无参考的音视频质量评估算法,软件模块可以对数据包中的音视频进行检测,从而评估终端的音视频质量。考虑到音视频质量评估算法的研究超出本文的描述范围,本文只做简要的介绍。
2.3交互设计
图3 质量分析模块
音视频服务器中各个模块都分工很明确,其中包过滤、音视频解码、质量检测模块是核心。
2.3.1Web模块
本Web模块是属于评估服务的一部分,负责与业务服务层的数据交换。
Web模块应用1ibevent函数库完成网络服务器功能,1ibevent是一个用来开发可扩展的网络服务器的事件通知函数库。当一个文件描述符上的特定事件发生或是一个超时时间到达后,1ibevent API提供一种执行回调函数的机制。而且,1ibevent还支持基于信号或定期超时的回调功能。1ibevent由C++封装,具有优良的实时性能,并且开发更容易。
图4 Web服务流程图
上述的流程图说明了整个Web服务的作用:Web服务在启动后,等待用户的检测请求,当接收到用户的检测请求后,发起质量检测服务会话,待检测完毕后,发送该次质量检测服务结果给业务服务该终端的状况。
2.3.2WINCAP抓包
WINCAP(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发WINCAP的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。WINCAP提供了一个强大的编程接口,它可以在各类操作系统上进行移植,方便了程序员的跨平台开发。WINCAP特别适用于下面这几个经典领域:1)网络及协议分析。2)网络监控。3)通信日志记录。4)traffic generators(流量产生器)。5)用户级别的桥路和路由。6)网络入侵检测系统(NIDS)。7)网络扫描。8)安全工具。我们利用WINCAP的网络及协议分析功能来获取混杂模式下的网络包。
图5 WINCAP抓包流程图
1)选定网卡,开启网络模式
打开网卡并设为混杂模式
网卡具有如下的几种工作模式:
广播模式(Broad Cast Mode1):广播发送网络包的物理地址(MAC)地址是0Xffffff的帧为广播帧,工作在广播模式的网卡接收广播帧。
多播传送(Mu1tiCast Mode1):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
直接模式(Direct Mode1):工作在直接模式下的网卡只接收目地址是自己Mac地址的帧。
混杂模式(Promiscuous Mode1):工作在混杂模式下的网卡接收所有的流过网卡的帧,网络抓包捕获程序就是在这种模式下运行的。
服务利用混杂模式监听从服务器端口镜像来的数据。
2)设置过滤条件
过滤条件的设置也需要深入研究,音视频传输协议是RTP协议,如果视频端口是10004,音频端口是10002,那么这里的fi1ter就需要设置为“src%1 and udp src port%2”,这里的%1和%2分别是10004和10002,这样WINCAP从过滤包中出来的都是已经过滤好的UDP的包,在这个基础上再进行包的精细过滤,获得UDP包,过滤出特定的音视频头,然后获得原始音视频数据。
2.3.3组包和FFMPEG解码
1)FFmpeg解码视频
在解码之前,阐述3个基本概念:
SPS(Sequence Parameter?Sets,序列参数集),该集中包含了一个图像序列的所有参数信息,包括编码所用的profi1e,1eve1,图像的宽和高,deb1ock滤波器等。
PPS(Picture Parameter?Set,图像的参数集),主要针对SPS后的视频数据补充,是最主要的视频图像帧数据。
这两个参数集是解码的关键部分,SPS负责传递参数,PPS负责传递数据。
I帧指视频解码中的关键帧,含有长宽码率等等参数。
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。我们利用该开源库来解码音视频。在解码视频的中遇到无法获取I帧的问题。I帧的获取方式是视频解码的关键问题。经过分析存在如下两种获取方式:一是通过向终端设备发送RTP请求获得I帧;二是业务系统通过调用设备厂商切换视频源的接口,进行会场查看,获得I帧。会议电视设备厂商都包含私有的协议,第一种标准RTP请求的方式不可取。因此,解码模块中的I帧通过第一种方式获得。
以下是判断是否获取到I帧的方式。
接下来就是获取P帧(附带数据的视频帧),P帧是时时刻刻都能获取的,但是如果没有I帧,也就是所谓的关键帧,就无法解码,所以我们获取I帧永远在前P帧在后。到下一个SPS(I帧)的开始,就代表上一帧结束了,然后把拿到的数据交付给音频解码程序。这里也有一个关键点需要解决,就是如何将获取的分散的I帧和P帧组装成一个视频帧问题。需要将每一个视频帧的I帧和P帧部分除了I帧头部和最后一个P帧尾部都添加以下字节数据:0x00000001,然后把该组装好的帧交给解码程序[7]。
2)视频帧
需要明确该视频序列是否由一个视频图像帧组成。有的视频序列可能是由两张或者两张以上的图片压缩而成,这样就需要多次解码,并且做好图片分割任务,本次采用的是一帧视频序列就是一张图片的方式,所以不做特殊处理,如果采用多图的方式,还需要做好分割。视频的长宽预先是知道的,把这些参数传给FFmpeg,然后FFmpeg才能有具体的参数去解码,同时也要带上帧率,这个帧率同样是由上层传递过来的参数,比如720p是1 280×720的分辨率,帧率我们设定为每秒30帧。
图6 视频帧解码流程图
在解码的时候需要注意,最后一个视频帧片段末尾的帧间填充代码,不需要添加分隔符0x00000001,这个步骤容易被忽略,造成图像会不规则模糊,代码调试很困难。
3)音频解码
正常人听觉的频率范围大约在20 Hz~20 kHz之间。
采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40 kHz左右。
常用的音频采样频率有8 kHz、11.025 kHz、22.05 kHz、16 kHz、37.8 kHz、44.1 kHz、48 kHz等。如果采用更高的采样频率,还可以达到DVD的音质。
对采样率为44.1 kHz的AAC音频进行解码时,一帧的解码时间须控制在23.22 ms内,通常是按1 024个采样点一帧。
4)音视频质量评估
解码视频后获得YUV格式图片数据,将这一帧的YUV格式图片送给质量分析工具。音频是PCM数据,同时也送给质量检测服务,完成一帧的检测,就能够得到音视频质量的数据。
视频质量结果该结构中包括以下参数:
①模糊度指数
概念:模糊度指图像空间细节的丢失和边界锐度的降低。
产生原因:模糊产生的原因有很多,可能来自于视频采集、处理或压缩,也可能是失焦拍摄导致的。
计算方法:先通过Sobe1或者Canny算法检测图像边缘,然后计算图像边缘的失真值,再利用HVS(human visua1 system)适应边界失真值,从而计算模糊指数。
②对比度指数
概念:图像对比度包含亮度对比度和色度对比度。亮度对比度指图像灰度反差的大小,色度对比度指图像色彩反差的大小。
产生原因:为了降低马赛克现象,H.264包含一个平滑宏块边界的解块过滤器。这种过滤器的使用导致宏块之间对比度的丢失。
计算方法:通过计算整幅图像的色度和亮度的变化差异获得对比度指数。B1ur
③卡顿指数
概念:卡顿指数描述视频帧的不流畅和不光滑的程度。
产生:当抖动和视频冻结发生时,就产生了卡顿现象。
计算方法:基于图像均方差,计算相对显示时间和所有帧的运动强度,综合这两个因素的结果得到卡顿指数。
④MOS评分
在主观视频质量评估测试中,MOS(平均意见)分值是专家对呈现给他们的视频的打分值。无参考质量评估中,MOS评分值是通过马赛克检测、模糊度检测、对比度检测、卡顿检测和一些小参数的加权组合得到的。这种组合及其权重是在IVC的MOS主观视频数据库的基础上获得的最优值。
音频质量结果该结构中包括以下参数:
1)频宽
指会议电话的音响装置能够处理或通过的一段频率范围。音频信号的频带越宽,所包含的音频信号分量越丰富,音质越好。
2)高频指数
指高频分量的数量与低频分量的数量的比值,比值太低说明音频存在失真情况。
3)饱和度
指处理后的音频段包含两个连续的样本,且都具有最小或最大可能的采样值,符合条件的连续样本出现次数越多,饱和度越好。
4)MOS评分
对信号先计算上述感知模型的关键属性,然后在变换后的空间上进行距离计算,获得的MOS值。
该套设备已经测试级别的部署了,从测试数据来看:
表2 实验数据
试验结果证明该服务能够明显提升在会议前发现问题的能力,能够保证会议在开始之前各项指数满足需求,保证会议中音视频终端无故障。
整个音视频质量检测服务立足实际应用:网络音视频会议质量检测需求,充分利用现有网络技术,对提供更好的网络音视频会议的用户体验,提供了一个很好的解决方案。
通过该套服务的部署,会议电视在音视频质量保障方面已经初见成效。该套设备已经成为现场音视频会议的重要组成部分,成为每次发起音视频会议的会前必备工具,该套质量分析工具为网络音视频会议顺利召开提供了有力的保障。
[1]周城,冯伟东,周正.视频会议系统音视频质量评价体系研究[J].电视技术,2013,37(8):80_85.
[2]王彤.基于FFmpeg的H.264解码器实现[D].大连:大连理工大学,2011.
[3]李器宇.视频质量评价系统及其关键技术的研究[D].天津:天津大学,2011.
[4]刘马飞,曾学文,倪宏.Windows平台下应用FFMPEG实现H1264视频回放[J].微计算机应用,2008(11):61_65.
[5]刘飞,杨飞.基于winpcap的网络抓包系统[J].计算机光盘软件与应用,2012(8):132_133.
[6]FU_A分包方式以及从RTP包里面得到H.264数据和AAC数据的方法[EB/OL].http://b1og.csdn.net/wudebao5220150/ artic1e/detai1s/13815313.
Audlo and Vldeo quallty analyses based on Promlscuous mode
ZHANG Tian_bing1,ZHANG Yun_xiang2,PENG Qi_wei1,FENG Min1,WANG Peng1,LUO Wang1
(1.Nari Group Corporation(State Grid Electric Power Research Institute),Nanjing 210003,China;2.State Grid Jiangsu Electric Power Company and Communications Branch,Nanjing 210024,China)
Recent1y,the network videoconference systems are used more wide1y,the qua1ity of audio and video stream transferred by network absorbs more attention,for examp1e,the video frame which transmitted by network,may 1ost,a1so the audio frame.This paper provides a method which used before conference,check the every termina1 who wi11 join the conference,find out which termina1 has simi1ar prob1em,and report this message to network manager,then the manager adjust the network,so1ve the prob1em.This method uses the 1ibrary of Wincap,who is working at mode1 of promiscuous mode,it captures the net stream from specia1 port,send this data to the server,decode,ana1yses,and report the resu1t to the center conference manager. The using of this service shows they can so1ve the prob1em during conference,1ost net frame,and easy to carry out.
promiscuous modej FFmpegj audio and video qua1ity ana1ysesj audio and video data decoding
TN99
A
1674_6236(2016)10_0131_04
2015_06_11稿件编号:201506124
江苏省电力公司科技项目(J2014048)j江苏省自然科学基金青年基金项目(BK20130107)
张天兵(1974—),男,四川广元人,高级工程师。研究方向:电力系统信息与通信。