苏鹏飞
摘 要:阐述了一种基于加密算法的智慧园区视频监控上云系统设计,将传统仅能在局域网访问的园区视频监控搬上云端,同时通过加密算法,对上传云端的数据进行加密,然后对播放逻辑进行改造,经过解密后才能执行视频解码播放,支持多种方式访问的同时确保了数據隐私的安全。
关键词:视频监控;加密;远程监控
随着数字中国的建设,特别是视频监控设备的国产化和设备研发制造成本快速下降,视频监控设备快速普及,并被广泛应用于各类园区,如景区、产业园区、社区等。出于安全和成本等原因,这些监控设备分布在各自独立的智能化专网,处于封闭运行的状态。调阅实时监控的方式主要在监控指挥中心,通过现场视频监控平台及大屏完成。近年手机移动应用快速普及,催生了远程实时查看视频监控的需求,比如景区大门口实时人员状态、应急处突管理的现场视频、产线生产的实时状态、重点实验室的运行情况等多种多样的需求。目前已经有很多家庭用级别的网络监控摄像设备及系统,可以满足简单场景下远程监控的基础需求。但是,受限于成本及摄像机的性能,无法在园区内大量普及。
在园区部署视频监控设备上云的系统,即可以实现远程监控的需求,通过园区本地部署的NVR设备获取前端的实时码流,经转码、加密、上云发布等流程,完成视频流上云的过程,在经过应用端的下载、解码、播放等,完成园区视频监控的远程实时查看。
1 视频监控上云技术
视频监控上云,如要确保视频内容安全,需要本地视频流经过转码,然后通过加密算法对视频内容进行加密,然后再上云传输,前端应用下载解密后,即可进行播放,完成远程监控的目的。
1.1 视频转码技术
FF MPEG是个开源跨平台多媒体数据解决方案[1-2],具备强大的编码、解码、转码能力,支持HTTP、RTSP、RTMP等多种协议,并且支持不同协议视频格式的转码,比如RTSP转成RTMP或HLS等格式。
开源RTMP架构SRS结合开源编解码库FF MPEG可以实现视频直播播放[3],本系统的远程视频监控功能类似直播平台,可以实现一次转码分发,多终端同时观看的效果。
1.2 视频加解密算法
本系统为了确保视频监控的安全,在编解码节点增加了加解密算法。算法在数据块的第28~40字节增加干扰数据串,其余数据通过简单4个字节1组,同一4个字节的密钥进行异或操作,实现视频数据的加解密。下面就分别就加解密算法进行描述。
1)加密算法
直接跳过第28到第40个字节,其余的数据按照四个字节一组同密钥进行异或操作复原数据。
2 监控上云整体方案
整体方案分为视频上传及视频下载两个部分,详见系统图1。视频上传部分包括前端NVR实时码流获取,视频格式转码,视频流数据加密及加扰,传输上云几个模块;视频下载及播放部分包括视频下载、视频解码、视频播放几个功能模块,后续将详细介绍。视频的加解密模块给视频的网络传输安全增加了一道安全屏障,确保了信息的安全。
3 系统关键模块
系统各关键模块密切配合,围绕视频流数据的安全可靠处理加工及传输等,完成园区视频监控上云及远程监控的目标。下面将分布介绍各个模块内容。
3.1 监控视频流获取
园区的视频监控设备都汇集到监控指挥中心,可以通过NVR获取其实时的视频监控流。监控摄像机都支持输出多个码流,主码流以及子码流,码流的编码格式式包括H.264、H.265等,可通过RTSP协议获取其视频流。系统首先获取所有视频监控设备的列表明细,然后在配置页面,选取众多摄像机中需要上云的设备,配置其码流地址、编码格式、账号及密码等信息。
鉴于视频流同时抓取需要消耗大量的计算资源及网络带宽,该系统视频流抓取部分,平时在“待机”状态,有前端系统请求的时候,才会启动视频流抓取的模块,根据预先设定的码流配置信息,将前端实时码流通过NVR传输到视频转码平台。系统平台支撑多路视频流数据同时抓取。
3.2 视频转码
本系统要支持多种播放终端上进行远程查看,包括PC网页、微信小程序以及移动APP等,需选取一个更加通用的协议作为传输标准,所以选择了更为通用的Webrtc格式流。原始的视频流各位RTSP标准,要转换成Webrtc格式,需要经过两次转换来完成。在视频转码的设计部分,由两个节点完成,首先通过FFMEPG组件在自研任务调度组件的支配下,以规则将视频流获取模块传输来各路的RTSP格式的视频流,转换成对应RTMP格式的流,然后将RTMP格式的流通过SRS组件,根据调度任务规则,转换成对应的Webrtc格式的流。转换流程如图2所示。
3.3 视频加密
为了保护隐私安全,系统采用本文1.2节描述的加密算法,对准备上云传输的视频流数据包进行加密。采用密钥为0x424E4C49,以视频转码节段生成的各路webrtc数据包为单位进行加密,各数据报内以4个字节1组同加密密钥按加密算法进行加密。各单位待传输数据包加密完成后,在每个数据包的第28至第40字节插入干扰串{{ 0x45, 0X4C, 0x45, 0X4B, 0X54, 0X52, 0X4F, 0X4E, 0X49,0X4B, 0X45, 0X52 },从而完成各个数据包的加密工作,准备进入视频上云分发阶段。
3.4 视频上云
视频上云模块主要根据播放端的请求,将经过加密的数据包对应传输给指定的链接,同时用多个线程来维护链接的数据,确保经过加密的数据包准确有序地上传。
3.5 视频监控云服务平台
服务平台负责响应前端播放器的码流播放请求,根据请求码流来分配播放地址,这里就分两种情况:一种是已经有别的播放终端请求过统一码流的播放,则直接将现有播放连接分发给新的请求终端;另外一种是全新的播放请求,则需要向前端请求对应的码流,建立视频流获取、转码、加密的数据通路,并将对应的数据获取地址下方给播放器端。
视频云平台服务器还负责维护当前所有的播放链接,针对每条播放链接进行权重赋值,增加1个播放请求加1,减少1个播放请求则减1。如果在2 min内无持续的播放请求,则释放该条转码上传连接,待下次有需求后重新建立链接。
由于视频建立链接有时间及资源的消耗,为了前端用户更好的体验,系统会根据前端用户使用的情况做出是否提前启动转码链路的预测,提前建立视频流的转码上传链路,待用户真的产生请求时,即可以完成秒速响应。
视频云端服务平台的主要作用就是完成播放段与转码端的匹配,并建立数据交换链路,响应终端用户的需求,同时达到资源的优化配置,及时释放无用的资源。
3.6 视频下载
视频下载服务模块,根据前端播放器的請求,从视频监控云服务器获取下载链接地址,并建立下载进程,将对应的数据下载到指定缓冲区。
3.7 视频解码播放
视频数据已经经过加密,如果直接丢给播放器,则无法进行播放,需要对称执行解密操作。播放器从对应的缓冲区获取经过加密的视频流数据,交给解密模块,解密模块根据本文1.2章节描述的解密算法,首先严重干扰字段释放正确一致,然后对其余的数据按4个字节一组,采用解密密钥0x424E4C49进行解密。解密完成的数据直接送给播放器进行播放。从而完成整个解密播放的流程。
4 系统运行效果
系统上线部署后,转码、加解密、播放各模块无缝配合,运行流畅。每路视频仅需要128 kbit/s的网络带宽,20 M的带宽即可支持200路园区本地监控视频同时远程调取的需求。图3为小程序端远程调阅的运行效果,视频从请求到播放时间1.5 s,运行流畅,画面清晰。
5 结束语
基于加密算法的园区视频监控上云系统,给智慧园区本地视频监控远程实时调阅提供了技术手段,在保障远程视频监控及时高效的同时,还给数据安全增加了一套屏障。具备良好的商业价值和广泛的推广意义,有了这套系统,再配合其他可量化的指标预警系统,即可让管理方有效掌握生成经营的状况,第一时间处理各种应急事件,有效促进园区数值转型升级。
参考文献:
[1] 吴张顺,张珣.基于FFMPEG的视频编码存储研究与实现[J].杭州电子科技大学学报,2006(3) :30-34.
[2] 胡成任,平安,李文莉.基于Android系统的FF MPEG多媒体同步传输算法研究[J].计算机技术与发展, 2011,21(10):85-91.
[3] 胡国强,周兆永,信朝霞.基于SRS的开源直播系统的设计与实现[J].现代电子技术,2016,39(16):36-43.