徐 洁,张海天
(1.江苏省生态环境监控中心,江苏南京 210036;2.南京云创存储科技有限公司,江苏南京 210014)
改革开放以来,环境保护部门针对环境保护开展了一系列措施,然而在城市经济持续快速增长和城市化进程不断加快的情况下,部分企业投机取巧、打擦边球,更有甚者只是在环保部门进行企业检查时才搞一些表面工作,给环境监管带来困难。目前绝大部分环保监测系统仅仅实现了数据监测功能,而没有实现图像监控功能,无法直观的看到排污点的实际景像。江苏省生态环境监控系统,不仅能看到各类监测数据,同时能看到实时的图像。它的视频监控系统,是以环保部门为中心,相关排污企业为支点的基于云计算的大规模污染源视频监控系统。
视频监控技术正在不断地向前发展,用户对于视频监控产品的要求也在不断提高,要有着更高清的画面,更完善的功能,更稳定的性能,更丰富的终端等[1]。要实现大规模的高清视频监控,就必须从多个环节进行全面考虑,如:摄像机采集视频信号的码率、视频图像的编解码、视频传输的网络、录像文件的存储等[2]。但这样一来,又给整个系统带来了一系列新的问题,如:存储空间需求量大、传输带宽不足、服务器性能指标压力、系统可靠性要求骤增等。
传统视频监控的架构如图1所示,通常采用大量“固件”的形式组合成平台。从摄像机、到硬盘录像机、网络硬盘录像机、视频切换矩阵、编码器、解码器、转码器、数字化综合平台、操作切换平台、数字业务平台、流媒体服务器等,最后输出到PC机、大屏等终端设备[3]
随着数据量的不断增长,业务场景的不断变化,传统架构已经愈发不能满足现有的需求[4],因此,如何将新的技术融入到监控系统中,从而形成一种全新的模式,逐步成为了监控行业的热门话题。
云计算的概念最早是由Google公司提出的[5],到目前为止,仍然没有明确的标准化定义,其概念描述如下:云计算是分布式计算技术的一种,主要通过网络将大量服务器连接在一起,并且将计算量很大的处理任务自动分为许多个较小的子任务,再交由这些服务器所组成的庞大系统进行处理,并将结果返回给用户[6]。
由此,可以将云计算应用于视频监控,通过采用标准服务器硬件加软件的形式,组建成统一的服务器集群,共同对外提供视频监控服务[7]。将云计算的概念和方法引入视频监控,充分利用“云”的计算能力和存储能力,无论是从系统的架构方面,还是可靠性、通用性、兼容性和可扩展性等方面都有着巨大的提升[8]。
图1 传统监控系统架构图
云视频(Cloud Video,cVideo)监控平台,是在服务器集群上部署的基于云架构的视频监控软件,其核心内容是将海量的前端视频信号统一接入,并进行实时的处理和分析。系统基于云计算的模式,采取海量分布式云调度架构,以集群的形式共同对外服务,通过合理的云调度,实现诸如视频云端转码、内容识别、智能分析等需求。最终将处理好的视频图像以标准流媒体的格式进行输出,推送给用户,并提供标准的接口,以供上层应用的调用。
cVideo监控平台主要由6个系统模块组成,分别是:接入模块、处理模块、存储模块、流媒体模块、中心调度模块和客户端模块,如图2所示。
图2 系统架构图
接入模块负责实现各种异构前端设备的接入,同时,对上层应用提供统一的调用接口。前端设备主要包括:模拟、网络摄像机、硬盘录像机、已有第三方平台等。可以将接入服务器模块中交互的内容分为数据流和信令流,数据流向如图3所示。
图3 接入模块数据流示意图
接入模块所处的位置是介于中心调度模块和前端设备之间,起到了一个“中间件”的作用,主要用途类似于“语言翻译”[9],主要负责将cVideo平台内部的控制信息,转化为对应前端设备可以识别的控制信息,获取响应后再转变为平台内部信息。接入模块珠宝涉及到的内容有:前端设备状态监测、摄像机云台控制、前端平台通信等,从而实现cVideo平台对前端设备的透明接入。
接入模块运行的环境是Windows操作系统,用C语言编写,程序的流程图如图4所示。
当接入模块启动后,首先向中心模块进行注册,如果连续3次访问不成功则认为注册失败,程序退出。如果注册成功,则程序正式进入工作模式。为了保证系统运行的稳定,并且可以捕获系统中断响应不会造成直接终止而导致不必要的问题,接入模块将消息(Socket)监听[10]和处理任务放入子进程,而父进程则负责等待和监听系统中断信息。子系统每捕获到一个中心模块发来的消息,则新建一个子线程与之对应处理,实现并发的操作与控制,根据Socket类型中定义的前端设备信息,调用相应的SDK访问该前端设备,并将返回的信息封装成平台内部定义的信息反馈给中心端。
图4 接入服务器流程图
存储模块包括存储客户端软件和存储服务器集群两部分。存储客户端软件部署在处理服务器集群上,由中心服务器统一调度,按需求将视频流按固定的时长保持为文件,并通过存储客户端写入存储集群;存储服务器集群为整个系统提供海量的存储空间,处理服务器和流媒体服务器通过挂载存储客户端,即可访问该存储空间,从而完成视频存储、处理、回放等任务,图5为存储模块的示意图。
处理模块由中心云调度进行统一综合管理,主要负责的工作是从接入分析,到数据处理,再到结果分发这3个部分,从而完成对接入视频的各项处理任务,包括从接入到处理再到存储及回看等一系列处理任务的分发工作。
图5 存储模块示意图
(1)标准RTSP协议的视频流接入:根据标准RTSP协议,获取前端设备视频流,同时,实时转发到平台内的流媒体服务器上,以供后续转码、识别、存储等部分的使用。
(2)非标准的视频流接入:使用厂商提供的协议接口获取视频流,并重新封装成标准RTSP视频流,然后通过流媒体服务器实时转发。
(3)内容识别:智能的内容识别需要消耗大量的CPU和内存资源,而通过云计算的分布式的特点和强大的计算性能,可以使传统架构下难以实现的大规模识别成为可能。
(4)云端转码:将视频转码放到云端进行处理,从而实现整个系统内的实时视频转码,以满足不同用户对不同终端,不同分辨率,不同码流的需求。
(5)视频数据存储录像:将处理转换后的标准视频流进行实时存储,按时间段保存为视频文件并保存到存储服务器上,以提供日后回调查看。
中心调度模块主要负责整合、调用系统内的其他各个模块,用户通过在终端发起请求,请求被提交到中心服务器,中心服务器调度管理系统根据具体的请求调度系统内相应模块的资源对其进行处理,最后将处理好的结果返回给用户显示查看。同时,中心模块还对上层应用提供了统一接口,大大提高了扩展性和伸缩性,更方便其他第三方平台的对接。例如:用户使用实时监控功能,前台操作后,后台通过调用调度命令去执行视频转码任务,任务结束后中心服务器把得到的视频流的地址返回给客户端浏览器控件,播放器控件则显示对应的视频。
中心调度模块主要功能和任务包括了实时监控、服务器状态监控、设备状态监控、录像回调、设备管理、用户管理等,对应的流程如图6所示。
整个中心云调度模块启动后,会保持监听Socket消息,根据不同用户终端发来的不同请求,进行相应的控制和调度,并把集群处理后的结果,或者视频流地址反馈给对应的用户终端,给出相应的提示,并记录日志,以后后期查备。
图6 中心调度任务流程图
流媒体服务器作为流媒体应用的核心系统,是视频监控系统向用户提供视频服务的关键模块。其主要功能是提供RTSP/HTTP流媒体服务,其中RTSP提供实时视频流及录像回调视频流,HTTP则只提供录像回调视频流。
流媒体模块支持多台流媒体服务器集群化部署,对外提供负载均衡的标准RTSP流媒体并发推流服务,用户根据相应的流媒体RTSP地址,即可实时地获取系统处理完后的实时视频数据和存储的历史视频数据,以供监控和远程访问。模块输出为标准RTSP视频流,通过构建流媒体服务器集群和负载均衡机制,使得多台流媒体服务器可以共同对外提供服务,支持高并发访问。
同时,流媒体服务器也可以提供对历史视频数据的流化推送。存储系统将历史视频数据保存在cStor存储集群上,将cStor挂载到流媒体服务器上,流媒体服务器就可以像访问本地文件一样访问到cStor上的历史视频数据。当用户需要查看历史录像时,流媒体服务器可以将这些视频文件流化,通过RTSP或者HTTP协议推送给用户,实现用户查看远程历史录像的需求。
客户端模块包括PC终端(支持Linux,Windows,MacOS等主流操作系统)、平板电脑终端(支持iOS,Android,Windows等操作系统)、智能手持终端(支持iOS,Android等操作系统)和监控大屏终端。客户端的功能主要是与用户交互,对不同的操作进行响应,如:显示视频设备列表、播放视频流、与用户交互云台控制、多路视频播放等。
江苏省生态环境监控系统的固定风险源视频监控系统,总共使用15台服务器构建,其中,用于中心调度模块2台,接入模块2台,处理模块3台,流媒体模块3台,同时使用了云存储设备,以共享挂载盘符的方式,在每台服务器相应位置挂载了云存储空间。接入模块服务器使用Windows 2008 Server系统,其他服务器使用Ubuntu 12.04 Server版。接入的前端设备为江苏省昆山市千灯镇工业园区内一些工厂的50个高清摄像头。
cVideo监控平台实现对这50路设备的透明接入,PC机监控界面如图7所示。
图7 PC监控界面
同时,为了支持多终端的监控,我们也制作了移动终端的客户端,以IPad为例,如图8所示。
图8 IPad监控界面
在半年的试运行期间,监控系统的各项服务运行正常,安全可靠,同时,中心任务调度分配均匀,其服务器的负载非常之低,也就意味着计算资源的余额十分充足,远未达到上限。
视频监控的发展速度极快,人们的需求逐步从“看得见”向“看得清”再到“看明白”过度[11],传统的监控模式已然不适应需求的发展。而随着云计算技术的不断发展,将云的理念和技术引入视频监控行业,作为一种全新的解决方案,也愈发成为了可能。较之传统监控模式,云模式下的视频监控有着无法比拟的优势:统一的架构、异构资源的整合、优异的可扩展性、云转码和智能分析的灵活性等等。“1831”平台的基于云计算的大规模污染源高清视频监测系统,正在为江苏的环保事业贡献自己的一份力量。
[1]原振升,袁华,罗晓奔.视频监控系统中的视频显示布局设计和实现[J].计算机研究与发展,2005(2):68-77.
[2]LEE Yachun,LIAO Ju,CHENG Huapu,LEE Weisong.A cloud computing framework of free view point real-time monitor system working on mobile devices[J].International Symposium on Intelligent Signal Processing and Communication Systems.2010(2):148-162.
[3]赵涵萍.虚拟存储在数字化视频监控系统中的应用研究[D].杭州:浙江大学,2007.
[4]许志闻.流媒体网络视频监控系统的设计和实现[J].仪器仪表学报,2004(3):304-307.
[5]刘鹏.云计算[M].2版.北京:电子工业出版社,2011.
[6]FOSTER I.,KESSELMAN C,TUECKE S.The Anatomy of the Grid:Enabling Scalable Virtual Organizations[J].International Journal of High Performance Computing Applications,2001(3):200-222.
[7]杜百川.下一代网络服务核心—云计算[R].北京:IBTC2010论坛,2010:174-192.
[8]MICHAEL A,ARMANDO F,REAN G.Above the Clouds:A Berkeley View of Cloud Computing[M].UC:Berkeley,2009.
[9]MACHE C.Cloud Computing:An Overview[J].ACM Queue,2009(5):3-14.
[10]JEREMIAH.windows平台下vlc编译之十:vlc-1.0.0的编译[DB/OL].http://jeremiah.blog.51cto.com/539865/178696,2009.
[11]张晓凯.浅谈视频编解码技术[DB/OL].http://wenku.baidu.com/view/bf3d32a3b0717fd5360cdcc3.html,2009.