基于Android平台的多媒体终端四方视频会议系统设计
2017-04-15
(1.福州大学物理与信息工程学院 福建 福州 350108;2.建星网锐捷通讯股份有限公司 福建 福州 350002)
基于Android平台的多媒体终端四方视频会议系统设计
余秀容1,2陈传峰1
(1.福州大学物理与信息工程学院福建福州350108;2.建星网锐捷通讯股份有限公司福建福州350002)
近年来,视频会议越来越流行,常用的视频会议系统一般都是那种会议室型视频会议系统,提供会议服务控制的是专门的MCU多点控制单元设备。这种系统部署复杂而且成本较高,属于大型视频会议,其举行会议的场所比较固定,处理灵活性、方便性、快速性都比较差。本文就在这种大型视频会议系统中可作为被动参会方的多媒体终端上实现主动发起四方视频会议来满足各种小范围的随时随地的小型多方会议沟通需求。在SVP3300这款多媒体终端硬件平台、Android软件平台上实现四方视频会议控制系统,利用开源的SIP协议框架实现会议通话,WebRTC技术实现视频媒体处理。
视频会议;多媒体终端;四方视频;Android;SIP;WebRTC
一、引言
近几年来,视频会议发展迅速,因为它能够让身处异地的与会人通过网络视频就能达到面对面沟通交流的效果,省去了舟车劳顿的差旅,节约了大量的时间成本,实现了高效、便捷和低成本。目前较为常用的服务于各行各业的专有性视频会议系统是会议室型视频会议系统[1],就是在一个大会议室里有专门的视频会议终端、麦克风、摄像机、音箱、电视机等,参会人员围坐在会议室里与另外一头具有类似装置的人们一起开会沟通,真正还有一端提供这一系列服务的服务端,即MCU多点控制单元。
其中作为参会方的视频会议终端设备主要完成音视频信号发送和接收任务,就是音视频输入输出的载体而已,当会议终端达到三个或三个以上时必须使用MCU多点控制单元来进行调度管理[2]。即多媒体终端在这样的会议系统中充当的角色是被动参会或者主动参会情况也仅仅是申请加入会议,必须要得到MCU服务器允许后才能加入,所有的会议控制均在MCU服务器上进行统一管理。
这种专用的视频会议系统存在以下缺陷:首先,部署复杂而且成本较高,需要花费较多的费用去购买设备和布置会议场所;其次,在要开启会议视频之前,会议主持方需要事先通知各个会场的会议参与方,以方便各参与方做各种会前准备,属于大型视频会议,其举行会议的场所比较固定,处理灵活性、方便性、快速性都比较差,很多时候都无法适应实际的使用需求。因此目前更需要的是能够在任何时间任何地点举行简单的小型多方会议的多媒体终端设备,来满足小范围的随时随地的多方视频会议沟通需求。
二、研究基础和相关技术
本课题是在型号为“SVP3300”的多媒体设备终端上实现四方视频会议系统,相对于普通的视频话机的亮点就在于其自有的会议系统,在没有MCU的条件下组建会议系统,使直接接入网络的几台终端之间就能够进行视频会议。
(一)硬件平台和总体功能分析
视频会议系统是在“SVP3300”这款多媒体终端设备上进行研究开发的,该设备采用海思Hi3798MV100方案为主控,内存为1GB DDR3,8GB e-MMC,采用LVDS接口的8寸1024×600分辨率液晶模组,触屏使用P+G贴框方案;摄像头使用USB接口,最大传输率720p @30fps,还包括USB、WIFI、蓝牙、以太网、麦克风、喇叭、手柄、若干按键等等硬件体系平台上。
因此从硬件上看已经具备了视频会议的基本硬件支持要素,基于此主要就是要从软件上实现完整的视频会议业务功能,包括发起会议、结束会议、会议过程控制以及多方视频图像显示等等。归纳起来包含三大模块:视频通话会话管理、视频媒体数据处理以及上层UI呈现与操作。利用开源的Android系统作为操作系统,开发上层UI应用,开源的PJSIP协议栈实现视频通话会话管理、开源的WebRTC技术实现视频媒体数据处理。
(二)软件相关技术
1.Android系统
多媒体终端视频会议系统是基于Android平台进行开发的,Android最大特点在于它是一个开放的体系架构,系统架构从下往上大致可分为四层:Linux内核层、系统运行层、应用框架层、应用层。上层依赖下层或底层提供的各种功能或服务,它们之间相互独立且分工明确,这种分层结构保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用无需任何改变,开发者可专注于应用层的开发。
Android提供了两种开发工具:SDK和NDK。SDK主要采用Java开发,把C/C++排除在外,而NDK提供了把C/C++代码编成.so的方案,来让Java通过JNI方式调用最终执行在Dalvik虚拟机中,即APK应用。上层UI应用使用Java语言直接在Android上调用相关的SDK进行开发,而SIP协议、视频处理等均是通过C/C++代码来完成的,利用NDK编译成.so库放到android系统中最终和上层UI应用一起编译成apk应用。
2.SIP协议
多媒体终端视频会议系统是基于IP网络的SIP协议通话系统。SIP是一种源于互联网的IP语音会话控制协议[3],可以用来建立、修改和终止多媒体会话,也可以邀请参与者参加已经存在的会话,比如多方会议。SIP协议本身不提供服务,但是它提供了一个基础,可以和其它协议一起给用户提供完整的服务,包括RTP(实时传输协议)、RTSP(实时流协议)、SDP(会话描述协议)等。SIP协议是一个点对点协议,所以它只需要一个相对简单的核心网络,而将处理工作下放给连接在网络边缘的智能端点,即多媒体终端便可。SIP协议还是一个文本协议,所以易于调测,结构灵活,可用TCP或UDP(推荐UDP),同时呼叫和媒体信息同时传送(媒体信息的传送由SDP传送),SIP“会话”还传输一些简单的经过封包的实时传输协议流,RTP本身才是语音与视频的载体。
采用PJSIP这个开源的源码来针对多媒体终端的视频会议会话管理进行开发。PJSIP代码层次非常清晰,从低级到高级都提供了很方便的接口供开发,主要层次包括PJSIP(SIP协议栈)、PJMEDIA(媒体栈)、PJNATH(NAT-T辅助库)、PJLIB-UTIL(辅助工具库)、PJLIB(基础框架库),其中PJLIB作为最基础的库,发挥着重要作用。PJLIB提供了非动态内存分配,实现了内存池,获取内存是从分配的内存池中获取。因此PJSIP只要极小的内存和CPU需求就能实现高效的性能,还支持多种SIP功能扩展,例如多人会话、会话控制、即时信息等等。
综上,选用PJSIP来实现视频会议的账号注册和呼叫整个过程完全是可行的,而且它能够使用极小的硬件资源实现高性能的会话管理功能。
3.WebRTC技术
WebRTC[4](Web Real-Time Communication,网络实时通信)主要是让Web开发者能够基于浏览器轻易快捷开发出丰富的实时多媒体应用。虽然WebRTC很明确是提供给浏览器应用开发的,但是WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android,iOS等。其中视频引擎以实现从摄像头数据采集到网络数据传输、以及从网络传输的数据到屏幕显示的过程功能提供了整套的解决框架。
在视频处理方面,WebRTC视频处理引擎是从视频采集设备到视频处理流程的功能集合,引擎中包括了采集设备的控制、视频数据的编码、图像质量监控以及网络安全控制等功能。WebRTC采用VP8编码技术,能在较低编码率的环境中保持较高的视频质量,这对视频会议系统来说具有至关重要的意义和作用。还给出了视频抖动缓冲器模块,能够有效降低由视频信息包丢失和视频抖动所带来的不良影响,以及提供了颜色增强、降噪处理等功能,从而提升了图像的质量。WebRTC还可以将H264集成到视频模块框架中,从而使用设备的硬件加速功能进一步提高编解码效率。
因此选择强大的WebRTC视频引擎来作为实现多媒体终端上四方视频会议视频媒体库基础框架。它能够有效解决硬件性能较低、网络带宽受限等等问题,让基于IP网络的视频会议能够清晰流畅。
三、存在不足与改进
通过对以上的Android系统、SIP协议技术、WebRTC技术的分析,基于SVP3300这款多媒体终端,结合三者可以实现多媒体终端上视频会议系统,但是多媒体终端的硬件性能与网络带宽资源仍然是制约视频会议能否清晰流畅的关键因素所在,而且要满足四方视频会议系统更是要对软件上的一些不足做改进。
(一)如何有效降低多媒体终端CPU的负荷
现有技术要在多媒体终端实现四方视频会议的做法如下:在参会终端B、C、D向主持终端A传送摄像头采集的压缩视频数据时,主持终端A首先会对接收的压缩视频数据进行解码,并将主持终端A的视频数据以及解码后的各参会终端的视频数据合成一路视频数据;然后由主持终端A将视频数据分别分发给与参会终端B、C、D进行通讯的三个编解码通道,三个编解码通道在对视频数据进行编码后,再发送给各自的终端进行显示。由于现有做法的主持终端A既要完成参会终端B、C、D三路视频数据的解码工作,还要对四路合成的视频数据进行3次编码工作,再分发给参会终端B、C、D显示,因此,现有做法大大增加了多媒体终端CPU的负荷。
其实这里主持终端A对要发送给各参会终端的四路合成的视频数据是一样的,只需要进行1次编码工作,即与现有做法相比减少了2次编码工作,大大降低CPU的负荷,确保视频显示的清晰顺畅。
(二)如何减少主持方网络带宽资源
在显示视频时,无论是主持终端还是参会终端均会显示本地图像和远程图像,作为主持方直接在田字格里面显示四方图像,而且能够对这四方图像进行选中后发送,即可以选中其中一路图像发送或者全部发送,而参会方的远程图像则是主持方发送来的图像,可能是某一路视频也可能是合并后的四路视频。即主持方可以自由切换视频布局发送给各参会方,目前做法就是无论主持方发送全部视频还是其中一路视频,参会方加入会议后都会不停发送其视频数据到主持方,无形之中占用了大量的网络资源,其实当主持方把多路显示切换到单路时其实只需要这一路参会方的视频数据发送即可。
因此,这里提出一种能够根据不同的布局动态调整参会方的数据发送的方法,在视频会议过程中,当主持方发起对视频布局调整时,全部显示情况下还是已有处理方式,当切到某一路视频显示时,只需要这一路视频数据发送处理即可,停止其它不需要的参会方数据传送,而且也省去了合并视频数据等环节,不仅降低了CPU负荷,还大大降低网络资源耗用,减少网络带宽占用。
四、结论
本课题通过对目前的Android系统、SIP协议技术、WebRTC技术的分析,基于SVP3300这款多媒体终端,结合三者可以实现多媒体终端上四方视频会议系统,并且结合现有技术提出了能够有效降低多媒体终端CPU负荷和节约网络宽带资源的办法,让在普通多媒体终端上实现四方视频会议更加清晰流畅,满足了小型多方视频会议沟通需求,不仅仅局限于会议室内,使携带有多媒体终端的人员可以随时随地开启视频会议,提高了视频会议的灵活性、方便性和快速性。
[1]卢卓飞.视频会议系统的研究[J].信息与电脑,2017,(第3期).
[2]李立华.视频会议系统的行业现状和发展趋势分析[J].通讯世界,2017,(第10期).
[3]杜鑫.SIP协议介绍及应用前景分析[J].信息通信,2017,(第2期).
[4]邵德伟.采用WebRtc技术搭建视频会议系统[J].机电工程技术,2016,(第C2期).
余秀容(1982-),女,汉族,福建福州人,硕士在读,研究方向通信系统。