一种容量可伸缩的网络摄像机接入平台的制作方法

文档序号:17549182发布日期:2019-04-30 18:08阅读:135来源:国知局
一种容量可伸缩的网络摄像机接入平台的制作方法

本发明涉及安防监控技术领域,主要涉及一种低成本、容量可伸缩的网络摄像机接入平台。



背景技术:

网络摄像机ipc由网络编码模块和模拟摄像机组合而成,是传统摄像机与网络技术结合所产生的新一代摄像机,支持wifi无线、3g、poe供电(网络供电)和光纤等多种接入方式,该摄像机将摄像机采集到的模拟视频信号编码压缩成数字信号并通过网络总线传送到web服务器,使用户可以直接用浏览器实时观看摄像机视频,授权用户还可控制摄像机云台转动镜头或对系统配置进行操作,使得远程监控实施以及施工、维护更简单。近年来,随着政治、经济、社会的不断发展,影响国家安全、公共安全、环境安全的不稳定因素日益增多,作为有效的监控手段,网络摄像机ipc使用越来越广泛,已在城市安防、公共交通管理、银行金融、教育系统等多方面发挥了不可替代的作用。目前,许多城市和大型安防单位都设有独立的ipc视频监控指挥系统,其核心在于构建稳定、可靠地ipc接入平台对其海量视频进行有效管理;另一方面,随着大数据处理、人工智能技术的发展与成熟,普通用户对视频信息深度分析与应用需求与日俱增,不仅要求ipc接入平台能对不同数量、不同厂商ipc采集视频进行有效管理,还要能提供基础的视频服务功能(实时显示、回放、转发、查询等)以降低应用系统开发难度、成本。然而,现有ipc监控设备来自不同厂商且需使用厂家提供的客户端软件或sdk二次开发获得视频信息,各厂商虽然都针对自己ipc产品开发了接入平台(系统),但采用了不同的实现技术和标准,导致平台间无法互联互通,存在设备兼容性问题且受限于商业技术保护难以解决。到2020年,我国安防企业总收入预计达8000亿元左右,年增长率达到10%以上,安防行业机遇和挑战并存,《中国安防行业“十三五”(2016-2020年)发展规划》特别提出要加强视频结构化技术、安防集成平台技术、人工智能、计算机视觉、多源视频融合技术等核心技术攻关、加快新产品研发,现有ipc接入平台建设不仅需投入大量资金、人力,且应用灵活性受限于商业系统技术保护,低成本地、容量可伸缩的ipc接入平台将具有广阔的市场应用前景。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种容量可伸缩的网络摄像机接入平台。

为实现上述目的及其他相关目的,本发明提供一种容量可伸缩的网络摄像机接入平台,该平台包括前端视频流采集设备、视频流存储模块、视频流管理模块、视频流分发模块和视频流显示模块;

所述前端视频流采集模块,将采集到的视频信息进行编码、压缩通过网络传递;

所述视频流存储模块,将前端视频流采集模块采集的视频流进行实时存储;

所述视频流管理模块,用于对存储在视频流存储模块中的视频流数据进行查询、删改以及生命周期设置应用处理;

所述视频流分发模块,用于将存储在视频流存储模块的视频流推送到授权客户端,实现用户对视频流的实时访问与进一步处理;

所述视频流显示模块,用于实现视频流在客户端的实时显示与回放。

可选地,所述前端视频流采集模块采用具备通用视频数据访问接口及sdk开发能力的网络摄像机ipc。

可选地,所述视频流存储模块利用nvr存储接口、云空间存储接口分别实现视频流在网络硬盘录像机nvr、云空间的高速、实时存储。

可选地,所述视频流分发模块利用rtsp/rtmp流媒体服务器将存储在网络硬盘录像机nvr或云空间的视频流推送到授权客户端。

可选地,所述视频流显示模块基于ffmpeg开源框架构建。

可选地,当网络摄像机ipc接入数量少于nvr最大容量时,利用nvr存储接口将采集视频流写入nvr;否则,利用云空间存储接口将采集视频流上传到云存储空间,并可根据具体接入ipc数量、视频生命周期需要对云存储空间进行扩展。

可选地,视频流分发模块中的rtsp流媒体服务器基于easydarwin开源框架构建,视频流分发模块中的rtmp流媒体服务器基于nginx开源框架构建。

可选地,使用ffmpeg开源框架在客户端实现ipc视频流实时显示和回放。

如上所述,本发明的一种容量可伸缩的网络摄像机接入平台,具有以下有益效果:

本发明不依赖于任何商业框架,主要结合开源的ffmpeg视频处理工具、sqlite数据库、easydarwin流媒体服务器架构、nginx流媒体服务器架构以及网络硬盘录像机、云服务供应商的开放sdk构建实现。通过将网络硬盘录像机以及云存储对象sdk中的接口、代码封装为可调函数,实现视频流存储模块的开发,本发明为不同容量的ipc接入平台的存储实现提供了简单、灵活的解决方案,当接入ipc数量少于nvr最大容量时,其采集视频流存放于网络硬盘录像机nvr,否则存放于租用的云存储空间,并可根据接入ipc数量、视频生命周期需要对云存储空间进行弹性扩展,从而节约平台存储成本;通过将easydarwin、nginx开源框架中的控件、数据接口及代码编码重构为可调函数,将ffmpeg开源框架中的接口、代码封装为可调函数,本发明可有效满足普通视频用户对视频流分发模块、显示模块便捷开发及性能稳定需要;通过采用轻量级、高访问速度开源数据库sqlite实现ipc视频流管理模块的开发,本发明使将视频流数据管理与通用数据库系统融为一体,从而可借助于成熟的数据库技术提高海量视频流的管理效率、安全性以及潜在地应用拓展。本发明实现了容量可伸缩ipc视频流的接入、运维,并克服了目前主流商业系统的技术门槛限制以及对高额资金、大量开发、维护人员要求,提高了接入平台开发的灵活性。

附图说明

为了进一步阐述本发明所描述的内容,下面结合附图对本发明的具体实施方式作进一步详细的说明。应当理解,这些附图仅作为典型示例,而不应看作是对本发明的范围的限定。

图1为icp接入平台结构图;

图2为icp视频流本地缓存;

图3为本地缓存ipc视频流上传云存储空间;

图4为ipc视频流分发流程图;

图5为ipc视频流实时显示;

图6为存储ipc视频流回放;

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

如图1所示,本实施例提供了一种容量可伸缩的网络摄像机接入平台,包括前端视频流采集设备、视频流存储模块、视频流管理模块、视频流分发模块和视频流显示模块;

所述前端视频流采集设备,将采集到的视频信息进行编码、压缩通过网络传递,是基于网络传输的数字化设备。

所述视频流存储模块,利用nvr存储接口、云空间存储接口分别实现前端采集视频流地在网络硬盘录像机nvr、云空间的高速、实时存储。

所述视频流管理模块,用于对存储在网络硬盘录像机nvr或云空间的视频流数据进行查询、删改以及生命周期设置等应用处理。

所述视频流分发模块,利用rtsp/rtmp流媒体服务器将存储在网络硬盘录像机nvr或云空间的视频流推送到授权客户端,实现用户对视频流的实时访问与进一步处理。

所述视频流显示模块,用于实现视频流在客户端的实时显示和回放功能。

于一实施例中,所述前端视频流采集设备采用具备通用视频数据访问接口及sdk开发能力的网络摄像机ipc。

于一实施例中,所述视频流存储模块利用nvr存储接口、云空间存储接口分别实现视频流在网络硬盘录像机nvr、云空间的高速、实时存储。

视频流存储模块,基于海康nvr和阿里云搭建,根据ipc接入数量,选用nvr存储接口或云空间存储接口对ipc采集视频流进行实时存储:当ipc接入数量少于nvr最大容量时,利用nvr存储接口将采集视频流直接写入nvr,否则,利用云空间存储接口将采集视频流上传到租用的云存储空间,并可根据具体接入ipc数量、视频生命周期需要对云存储空间进行弹性扩展。

所述的云空间采用布置在公网的阿里云,其存储接口基于阿里云服务器ecs、对象存储oss的sdk构建,ipc采集视频流经本地缓存后上传到云存储空间。因视频流上传存在时间开销,本发明将视频流显示和存储独立开来,视频存储另开一个线程,并根据系统时间设置视频文件名字、文件大小。

如图2所示,ipc视频流本地缓存步骤为:

步骤1,调用ffmpeg的avformat_find_stream_info函数获取视频压缩文件.h264数据信息;

步骤2,根据视频压缩文件.h264数据信息,调用ffmpeg的avformat_alloc_output_context2函数配置输出文件格式,调用ffmpeg的avcodec_parameters_to_context、avcodec_parameters_from_context函数配置输出文件参数;

步骤3,调用ffmpeg的avformat_write_header函数写文件头,将视频存储为mp4格式文件,需要判断接收的视频流是否有时间戳判断pkt.pts==av_nopts_value,如果没有,计算并写入pts、dts和duration等时间信息;

步骤4,文件存储结束时写文件尾,调用ffmpeg的av_writer_trailer函数。

如图3所示,所述ipc视频流经由本地缓存上传到云存储空间的步骤为:

步骤1,设置阿里云对象存储oss相关参数endpoint、access_key_id、access_key_secret、bucket_name、dir_name;

步骤2,初始化网络、内存池等全局资源,与对象存储oss进行身份验证,将视频文件写入内存池pool,上传到阿里云存储空间;步骤3,上传完毕释放内存池、全局资源。

于一实施例中,视频流管理模块的搭建,使用sqlite数据库记录存储视频流的起始间、结束时间、日期、pc编号以及存储路径、位置;设置存储视频的生命周期并可根据存储日期、ipc编号及存储位置(“y”-nvr空间,“n”-云存储空间)检索视频及删除目标视频。

于一实施例中,如图4所示,视频流分发模块的搭建,选用rtsp流媒体服务器或rtmp流媒体服务器对存储在nvr、云空间中的视频流进行对应格式封装,并将其推送到指定网址端口(客户端pc机)。

所述rtmp流媒体服务器在linux操作系统下基于easydarwin开源框架构建,所述rtmp流媒体服务器在linux操作系统下基于nginx开源框架构建。方式如下:

(1)搭建easydarwin流媒体服务器,下载源码到ubuntu下,更改buildit的可执行权限,进行编译;编译成功后,配置easydarwin.xml文件中的地址和端口进行监听的建立,主要有两个配置项:

<prefname=”bind_ip_addr”>0</pref>

<list-prefname=”rtsp_port”type=”uint16”>

监听端口设置为554;编写bash脚本,执行start.sh文件启动easydarwin流媒体服务器。

(2)搭建nginx流媒体服务器,下载nginx-1.8.1版本和nginx-rtmp-module,安装nginx的依赖库,配置并编译nginx;配置文件nginx.conf,主要配置:

监听端口设置为1935,数据传输快的大小4096。进入安装目录/usr/local/nginx,运行命令./sbin/nginx启动nginx流媒体服务器。

于一实施例中,如图5所示,所述视频流显示模块,用于实现视频流在客户端的实时显示与回放。

其中,ipc视频流实时显示模块,具有三个功能按键:play播放、stop停止和savepic抓图。抓图功能按键是对实时显示视频流进行i帧抓图,需判断当前帧是否为i帧,如是则将该帧图片按jpg格式保存,如不是则等待i帧到来。如图5所示,实时显示步骤为:步骤1,调用ffmpeg的av_register_all和avformat_network_init函数进行初始化,设置参数,创建与tcp模式或udp模式对应的连接方式;步骤2,通过地址接入rtsp视频流,获取当前视频压缩数据信息并查找对应的解码器进行解压缩,获得非压缩像素数据yuv420p并转换到rgb格式;步骤3,使用opengl绘制图像,设置显示窗口的刷新速率,启动定时器。

如图6所示,所述ipc视频流回放具有四个功能按键:play播放、pause暂停、stop停止和slider活动条。实时显示步骤为:步骤1,通过数据库查询、选取存储在nvr或云空间的视频流文件;步骤2,调用ffmpeg的av_register_all和avformat_network_init函数进行初始化,设置参数,创建与tcp模式或udp模式对应的连接方式;步骤3,通过地址接入rtsp视频流,获取当前视频压缩数据信息并查找对应的解码器进行解压缩,获得非压缩像素数据yuv420p并转换到rgb格式;步骤3,使用opengl绘制图像,设置显示窗口的刷新速率,启动定时器;

步骤4,利用功能按键确定视频流回放位置并进行播放、暂停、停止操作。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1