监控视频自动下载与刻录系统的设计与实现

2022-03-11 12:39兰益国
电脑知识与技术 2022年1期
关键词:多线程

摘要:该文介绍了一种监控视频自动下载刻录归档系统的结构及实现方法,该系统对NVR、存储设备、光盘刻录打印设备进行集成,运用多线程技术,通过控制设备协同运行,以相对较低成本实现监控视频数据的自动下载与刻录,具有较强实用意义。

关键词:监控视频;设备集成;多线程;自动下载;自动刻录

中图分类号:TP37      文献标识码:A

文章编号:1009-3044(2022)01-0108-03

1 背景

视频监控系统是各行业重要场所进行实时监控的重要技术手段,它记录有关视频、音频数据,为事件溯源提供技术支撑,在公共安全、公共资源交易等行业有着广泛的应用。视频数据量极大,部分行业的视频数据需要长期保存,以笔者所在公共资源交易中心为例,监控视频需存放15年,交易场所安装的监控摄像头超过一百个,每天产生的监控视频数据超过5TB,其中存在大量的无用数据,需将有用数据从设备下载备份并刻录为光盘存档。监控视频数据下载备份工作量极大,如果通过人工下载处理,过程烦琐、效率低下,消耗大量的人力和时间,也容易产生失误。如不及时下载,数据将被覆盖,导致无法挽回的损失。为解决上述问题,作者开发了监控视频自动下载与刻录系统,实现监控视频管理自动化,取得了较好的应用效果。

2 系统设计

2.1 数据存储介质选择

监控视频数据量极大,处理、保存困难,以1080P分辨率ASF格式视频为例,一个小时约2GB,一个摄像头一天产生的数据量约48GB,故存储介质选择十分重要。硬盘对资料的存储、查询、检索速度快,但硬盘及其配套设备价格相对较高,运行维护要求高,保存时间相对较短。光盘保存时间长,数据安全性高,光盘的容量和寿命都满足电子档案管理要求,蓝光光盘容量可达100GB以上,档案级光盘寿命可达30~50年。因此,光盘是视频数据较为理想的存储介质。

考虑到部分数据使用频率较高,需经常调阅,如人工检索取用光盘,效率较低。为解决该问题,系统采用磁盘阵列与光盘相结合存储数据。使用磁盘阵列作为下载缓存,存放将近期下载和部分使用频率较高的数据,形成在线资源库,提高常用数据调取速度。以光盘为介质,基于智能光盘柜等设备搭建低成本离线资源库,将数据以光盘形式存放在光盘柜中,实现数据高性价比存放。

2.2 光盤自动刻录与盘面打印方式

按作者所在行业监控视频数据管理规范要求,视频数据需要按招标项目归档,因此既要刻录光盘,也需要在光盘盘面打印所属项目信息,便于归档和调阅查找。根据业务需求,使用光盘刻录打印一体机实现自动刻录与盘面打印[1]。

光盘刻录打印一体机属技术、市场均较为成熟的设备,内部安装机械臂、刻录机、输入盘仓、输出盘仓、盘面打印装置,可放置上百张光盘。设备工作时由机械臂从输入盘仓抓取空白光盘进行刻录打印后放入输出盘仓,工作人员只需定期放入空白光盘和取出刻录完成的光盘即可。该类设备厂家一般提供SDK软件包,可实现第三方软件与设备对接,由第三方软件控制设备实现刻录和打印,非常适合本系统应用场景。

2.3 硬件设备组成

整套系统由网络摄像头、网络硬盘录像机(NVR)、服务器、磁盘存储阵列、光盘打印刻录终端、光盘打印刻录一体机、光盘柜构成自动化、智能化监控视频管理平台硬件基础。使用者可根据刻录工作量配置一个或多个光盘刻录打印终端,也可用云存储代替磁盘存储阵列,进一步减少硬件设备维护工作量。硬件设备连接方式如图1所示。

2.4 软件系统设计

作为控制硬件设备实现自动化管理的核心,监控视频自动下载与刻录管理系统由数据交换与处理模块、视频数据下载模块、视频数据刻录模块、系统运行状态监控模块、系统运行状态显示模块、视频数据调阅管理模块、Named Pipe通信模块[2]七部分组成。为确保稳定可靠运行并及时响应下载指令,监控视频自动下载与刻录管理系统分为两个独立部分,数据交互与处理模块、视频数据下载模块、视频数据刻录模块、系统运行状态监控模块一般不需要用户界面,部署为Windows服务程序[3]780,方便在服务器重启时自动启动。视频数据调阅管理模块、系统运行状态显示模块为Web部署方式,方便分发与升级,Named Pipe通信模块用于Windows服务端与Web端交换数据。为了在集成的过程中减少组件之间的冲突,使用XML格式进行数据交换。系统结构如图2所示。

3 软件系统核心模块功能实现

3.1 数据交换与处理模块

需下载的视频数据一般分为两种情况,一种是特定摄像头特定时间段的视频,一种是固定摄像头固定时间段的数据。特定摄像头特定时间段的视频信息通过数据交换接口从其他应用系统获取包含NVR设备地址、设备厂家、摄像头通道和视频起止时间等信息的XML格式数据,固定摄像头的固定时间段的视频信息存储在本系统数据库中。为防止数据错误,任务数据应经校验后进行处理。为便于视频数据的使用,单个文件不能太大,因此系统在保存任务条目到数据库前将单个时间过长的条目切分为多个条目组成的任务组。

3.2 系统运行状态监控模块

实际运行时,数据交换接口可能出现通信故障,摄像头可能出现设备或网络故障导致视频数据不完整下载失败等问题,刻录设备易出现缺盘、废盘、打印墨水耗尽等问题,需对设备运行状态进行监控,因此设置系统设置运行状态监控模块,实时记录软硬件系统运行状态。NVR和刻录设备SDK提供状态查询接口,通过解析返回数据可获取设备状态和故障信息。当设备出现故障或错误时通过Web端或邮件向管理员人员告警,以便及时介入处理。

3.3 监控视频数据下载模块

3.3.1 下载任务队列管理

实际运行中,为方便查询调阅,视频会按时间分割为多个小段,如南充市公共资源教育中心一般划分为每个小时一段,会产生大量的任务条目,如逐个按顺序执行,无法快速下载所有视频文件。本模块使用多线程技术解决该问题,但运行下载线程过多,将导致服务器无法响应其他服务请求,需限制同时运行的下载线程数量。模块中设置一组任务队列和一个下载线程池[3]608,通过任务管理类统一调度任务队列,线程池管理类监控线程运行[4],达到服务器资源使用最优化,避免服务器宕机。

3.3.2 多厂家设备的兼容方式

系统使用中存在更换设备品牌或同一网络中存在同时运行多个厂家视频监控设备的可能性,系统需同时支持多个厂家设备。不同厂家SDK开发包接口各不相同,因此系统将海康威视[5]、大华[6]等主要厂家SDK分别封装为不同的类,既方便调用,接入新厂家设备也更灵活。采用统一的XML格式交换数据,在XML数据中加入厂商识别标识,通过解析数据中的设备厂家标识调用对应的类下载视频数据。

3.3.3 视频格式转换

该模块按切分规则从NVR下载监控视频,存入在线资源库。部分厂家SDK下载的视频文件属厂家专有格式,需要使用专用播放器解码播放,为确保视频文件的通用性,应转换为AVI、MP4、WMV、ASF等通用格式。转换格式有两种方式,一是视频文件下载完成后调用SDK转换,二是下载时在下载回调函数中获取数据流并调用SDK转码函数转码后写入视频文件,作者采用在下载回调函数中转换格式的方式实现。以大华NVR为例,在下载回调函数中转换格式核心代码如图7所示。

3.4 视频数据刻录模块

视频文件组下载完成后,数据交换与处理模块将数据编码为XML数据推送到视频数据刻录模块,视频数据刻录模块解析提取文件组信息后发送任务到打印刻录终端,调用刻录设备SDK实现网络文件传输、光盘刻录和盘面打印。数据刻录流程如图8所示。

3.5 视频数据调阅管理模块

为提高视频数据使用效率,数据调阅全程网络化办理。用户(如监管部门、本单位人员等)在系统中发出调阅申请, 申请调阅时限、调阅权限(如在线播放、下载等),经管理人员审核同意后,系统从在线资源库中查找监控视频资源,如未检索到资源,則由管理人员在光盘柜中查找光盘并将视频数据导入在线资源库,用户调阅结束后删除在线资源库中相应数据,节约在线存储资源。

4 系统性能测试

4.1 系统运行环境

数据库、应用系统部署于同一服务器,服务器配置双路Intel Xeon E5-2609V2处理器、128G内存,60T磁盘阵列,千兆局域网,配置单光驱蓝光刻录打印一体机1台。

4.2 测试情况

系统于2020年10月投入试运行,至2021年9月,共计产生约40T数据。数据平均处理耗时不超过4小时/天,数据处理能力不低于500GB/天。除取放光盘外,其余环节均实现无人值守,未出现过导致服务器长时间停机处置的重大故障。测试发现,网络带宽是整套系统性能瓶颈,如增加网络带宽,系统性能可进一步提升。

4.3 结论

系统功能、数据处理能力满足业务需求。

5 结束语

该系统解决了监控视频管理难题,优化了资源共享使用效率,实现管理自动化,建设成本相对较低。在对接其他信息系统获取NVR信息和时间参数后,实现无人值守的自动下载、自动刻录,提高了数据的准确性和完整性,极大地降低了工作强度,释放人力资源。以笔者单位为例,以往需要2名专职工作人员下载刻录监控视频,现仅需1人定期进行设备巡检和光盘存取操作即可,显著提高了工作效率。该系统也可延伸应用至其他类似场景,如电子档案的自动化管理、各类信息化系统重要数据的备份等。

参考文献:

[1] 张恩红,张金标,李高洁,等.气象数据光盘归档系统设计与实现[J].广东气象,2018,40(2):73-76,80.

[2] 钮焱,张颖江.基于Named Pipe网络通信系统设计与实现[J].湖北工学院学报,2002,17(1):56-58.

[3] Nagel C,Glynn J,Skinner M.C#高级编程—C#5.0&.NET4.5.1[M].李铭,译.9版.北京:清华大学出版社,2014.

[4] 黄汉堂,舒子谦.C#多线程的实践[J].电子制作,2019(20):63-65.

[5] 陈俊良,葛俊锋,叶林,等.基于海康威视SDK的视频监控软件的开发[J].工业控制计算机,2015,28(7):97-98,101.

[6] 孙云云.基于大华软件开发工具包的组态软件视频监控控件[J].上海电气技术,2017,10(2):9-12.

【通联编辑:谢媛媛】

收稿日期:2021-09-16

作者简介:兰益国(1979—),男,四川南充人,讲师,学士,研究方向为公共资源电子化交易系统建设、公共资源交易电子档案管理、公共资源交易大数据分析。

3612500338202

猜你喜欢
多线程
Java多线程同步机制在网络售票系统中的应用
Java并发工具包对并发编程的优化
基于多线程文件传输关键技术研究与实现
网页爬虫技术的关键技术研究探索
一种基于多线程的高速磁盘镜像算法
iOS并发程序设计中几种方法的特点及使用技巧研究
HTM L5 Web WOrker技术及应用研究
一种高并发认证服务器的实现
一种低开销的并行重复数据删除算法
基于Measurement Studio的试飞数据实时监控、存储、分析及回放平台设计