zoukankan      html  css  js  c++  java
  • 视频监控/存储系统设计要点

    视频监控系统包含下面组成部分:

    编号

    模块名称

    功能及备注

    1

    设备代理

    系统与前端设备进行通信

    2

    报警

    接收/存储报警信息(外部报警)

    3

    流媒体

    转发视频流,由于设备并发连接有限。通常配备多个网卡

    4

    设备接入

    前端设备接入系统,一般通过onvif,rtsp或SDK,电力系统有自己的协议

    5

    存储

    下文将重点描写叙述

    6

    联动

    包含策略定义域运行

    7

    Web

    跨平台可採用QtWebkit或mjpeg方式

    8

    电子地图

    一般支持矢量图,在地图上叠加视频,支持多画面

    9

    级联

    多级系统级联

    10

    控制服务

    云台控制和权限管理

    11

    预览

    client

    12

    校时

    统一设置设备时间

    存储的设计宗旨:即存的下、找得到。做到下面两点即为合格的存储:录像不丢失,高速找得到。

    存储的发展过程:

    名称或组成

    位置

    结构描写叙述

    较上一代的进步

    PC式DVR

    前端

    在PC上使用板卡接收视频流,存入本地硬盘

     

    嵌入式DVR

    前端

    使用专用设备接收视频流,存入本地硬盘

    避免病毒、人员不当操作带来的风险

    存储server+IPSAN

    后端

    集中存储,1+n模式。server收流后再发给IPSAN存储

    可靠性提高

    管理机+存储主机

    后端

    集中分布式存储,1+n模式,存储主机收流存储在IPSAN上,管理机负责分配和统一查询

    避免带宽浪费,减少存储server压力

    存储的过程:设备接入收流à流媒体分发à写入磁盘à录像查询

    存储设计特点:写多读少,易产生磁盘碎片。据经验,磁盘循环覆盖3轮。读写效率减少80%。

    防止磁盘产生大量碎片的方法:

    1.      预分配空间:在磁盘中预先分配存储空间,并在空间中写满“垃圾数据”,人为使其成为连续空间。(能够通过“新磁盘初始化”过程实现;或在后台执行一个低优先级的线程。在空暇时进行预分配,分配完毕后线程退出。)

    2.      循环利用文件:不删除老文件,而是将老文件标记为“无效”。磁盘写满后寻找“无效文件”,又一次写入。

    存储视频格式:

    能够使用原始格式(前端取来不加转换)或者统一格式(转换)。

    一般建议使用统一格式。以便于其他相关模块的开发,提升低耦合性和通用型。注意此处转换不是指转码。

    通常使用PS封装的H264流。

    (PS封装中包括了时间信息)

    注意事项:

    使用Intel i7处理器和NVIDIA独立显卡的PCclient,在播放16路1080P视屏时会出现严重卡顿。通常解决方式是当显示路数少时,提升分辨率和码率;当显示路数多时,适当减少分辨率和码率。

    关于拉模式和推模式:

    通常建议使用拉模式。即获取视频流这一操作由后端(client或者存储主机发起)。这样方便平台系统的模块化。也减少了对前端设备的要求。

    存储模式:

    管理机上有一个全局统一的数据库存放录像的索引,包含I帧时间戳,事件时标等。

    每台存储主机上有一个小数据库。记录本地存放了哪些录像文件,每一个文件相应哪台前端设备的哪段时间。哪些文件已被标记“无效”哪个是当前正在使用的文件等。

    存储主机执行时需向管理机上报执行状态。

    分配存储资源:

    支持在界面上指定,由管理机分配哪个IPC存到那个存储主机上。

    存储主机启动时向管理机上报资源,管理机依据资源能够自己主动分配哪些摄像机存到哪台存储主机上。

    录像检索:

    查询时向管理机查询。管理机将详细查询的数据定位到某一台存储主机上。即用户不须要关心录像文件存储在哪一台存储主机中。

    录像查询方式:

    1.      依照摄像机-时间段来检索:最主要的检索方式。

    2.      依照摄像机-事件标签来检索:(准智能检索)须要检測并存储SmartIPC产生的事件标签,检索时可依据事件标签进行。

    (也支持人工加入自己定义标签)

    3.      依照摄像机-内容检索:即在须要检索时再调用分析模块,在分析server上设定分析參数,预先把录像过滤一遍,产生片段后再提交给用户。

    (这提供了一种视频分析的应用新思路!

    容灾和异常处理:

    目标是在异常情况下保证录像的完整性。包含3点:即切换、冗余、恢复。

    1.      存储主机能够分为值班机和备用机。能够设置成N+1的形式。当某个值班机宕机时,由管理机发现,并用备用机顶上。

    2.      同一台存储主机中的多块硬盘能够设置成N+1的冗余形式。当某个硬盘损坏时。用备用盘顶上。

    3.      设备宕机后已存储数据的恢复。最简单的方式是使用多副本存储。

    4.      要考虑某些关键录像不可被覆盖,能够採用数据库加锁的形式,或者将关键录像迁移到某一独立的存储主机上。

    5.      故障恢复后的处理:已升至值班状态的原备机维持值班状态。从故障中恢复的原主机作为备机使用。

    6.      当发现有IPC、磁盘、存储主机故障时。须要提醒工作人员处理。

    旧系统升级需考虑原有NVR、DVR、外接存储介质(如SD卡、外接硬盘)的IPC,在现有存储体系中的地位,纳入还是不纳入。

    其他:

    存储策略:能够依据用户需求(或向用户提建议)。在存储时减少帧率。某些画面相对精巧和光线暗淡的摄像机可採用更低的帧率。

    通常情况下,在不考虑主码流子码流的情况下,存储帧率和预览帧率是统一的。

    存储的数据文件大小不宜过大,经验採用128MB。

    网络利用率:经验中,网络利用率超过50%,画面会出现明显问题。

    录像文件的平滑切换:将录像文件预读到流媒体中来处理(自己做个实验试试)。

    在大规模分布式存储系统中。可将存储主机与设备部署在同一个局域网中。将管理机部署在主站端,以此解决存储对网络带宽的利用问题。

  • 相关阅读:
    DAL层中根据ID删除方法(常用)
    DAL层联合查询及条件查询方法(常用)
    WPF中DataGrid在没有数据的时候也可以显示水平滚动条
    C#使用SharpZipLib创建压缩文件,并指定压缩文件夹路径(解决SharpZipLib压缩长路径显示问题)
    WPF的DataGrid的某个列绑定数据的三种方法(Binding、Converter、DataTrigger)
    WPF实现背景透明磨砂,并通过HandyControl组件实现弹出等待框
    C#使用FileSystemWatcher来监控指定文件夹,并使用TCP/IP协议通过Socket发送到另外指定文件夹
    C#使用Parallel处理数据同步写入Datatable并使用BulkInsert批量导入数据库
    C#编写运行在Linux环境下的采用Mediainfo来获取多媒体文件信息的代码
    C#使用iTextSharp+ZXing.Net+FreeSpire.PDF生成和打印pdf文档
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5245525.html
Copyright © 2011-2022 走看看