
l 视频监控服务器总体设计
视频监控服务器解决方案和实现的流程
本监控方案的结构所示。基于分层网络的视频监控系统由监控中心,远程监控终端和网络构成。每个监控中心都由监控服务器、监控终端、监控前端、摄像头、报警器和局域网组成。监控服务器负责本地局域网用户的管理,音视频数据、报警信号的转发、音视频数据的本地存储,管理监控前端,给远程用户或其他监控中心提供监控资源访问服务等。监控前端是一个Linux的嵌入式系统,它采集摄像头的视频数据,并用H.264标准压缩,把压缩数据打包并发送到IP网络上,也可以把音频信号压缩并打包和发送到IP网络;它支持云台控制协议;还支持报警器的信号编码。在物理结构上,每个监控中心都是一个功能完备的监控系统,它们是同级的,没有地域区分;在逻辑结构上,监控中心划分成树状的层次结构,每个监控中心由它上层的监控中心(称为分控中心)管理,最上层的监控中心是总控中心。这样的系统结构既可以使每个控制中心单独组成监控系统,又可以通过网络分层连接起来组成规模较大的监控系统,具有很好的扩展能力,适用于各种规模的实时监控。当上层的监控中心瘫痪或是网络发生故障的时候,每个监控中心还能独立正常地工作,提高了监控系统的健壮性。用户可以通过登录远程监控终端或者监控中心内部的监控终端,通过服务器的身份认证并获取 *** 作权限后对系统进行监控和管理。
1)监控前端的设计
监控前端是一个基于ARM处理器的Linu)【嵌入式系统。监控前端的主要硬件模块如图2所示,监控前端硬件部分可分为ARM CPU、系统内存、以太网接口、H.264编码模块、图像采集模块、视频存储模块,Flash存储模块,视频服务器管理模块,网络传送数据等几个部分。各模块由CPU统一管理和调度,Flash存储模块负责存放linux嵌入式 *** 作系统和各部分硬件驱动程序。摄像头的视频信号通过模数转换以后得到视频图像帧的数字信号,数字信号通过H.264编码模块压缩后的数据存放在H.264编码模块的缓冲区内,用户可以通过对WEB服务器的 *** 作,读取或修改这些压缩信号,最后图像信号到达网络传送模块,将经过H.264编码后的数据封装成RTP包,同时周期地发送RTCP包,以流媒体的方式传送到远程的客服端。
2)客服端(监控终端的设计)
监控终端软件的运行平台是基于Windows *** 作系统的PC机,可以高速连接到公共网络。监控终端软件采用了vi—sualc++MFC Windows界面编程的文档一视图编程模式,系统的类图设计如图3所示。CClientsocket类负责接收、解析网络数据包和发送用户命令。网络接收到的RTPARTCP包经过C~lientsocket类解析以后,如果是视频数据,则放在CVideoBufer类里面,如果是音频数据则放CAudioBufer类里面,其它的如报警,重启,删除等消息则放在C_ConTrolMes—sages类buffer里,CVideobufer是个图像缓冲区,CAudiobufer是音频缓冲区,我们通过线程同步,来实现音视频的同步播放。通过CConTrolMessages类里的成员函数,来响应用户需要的单路多放,回查,自动报警设置等功能。
安装程序应该会创建一个motion群组和用户,并且将motion用户添加到video群组。要是安装程序没有创建motion群组和用户,那么你必须自行创建。还要自行添加到video群组,才能避开烦人的权限问题。现在运行motion,看看它是否管用:
它会显示好多好多行,直到你看到如下内容:
[1] Failed to open video device /dev/video0: No such file or directory [1] Video signal lost - Adding grey image
将你的Web浏览器指向localhost:8081,你会看到一幅灰色图像:
图2:如果Motion找不到摄像头,就会显示灰色图像。
这很好,因为这表明Motion已正确安装;你要做的就是对它进行配置。按Ctrl+C组合键停止运行。然后,在你的主目录下创建一个.motion目录,将默认配置文件拷贝到该目录中,并将所有权改成归你所有:
~$ mkdir .motion ~$ sudo cp /etc/motion/motion.conf .motion/ ~$ sudo chown carla:carla .motion/motion.conf
你还需要用来存储motion所拍摄图像的一个目录:
~$ mkdir motion-images
当你启动Motion后,它会寻找配置文件,先在当前目录下寻找,然后在~/.motion下寻找,最后在/etc/motion下寻找。现在,编辑你的~/.motion/motion.conf文件――该例子包括基本配置以及与我的Foscam IP摄像头相关的那些行:
你需要创建用来存储PID文件的目录,因为它在motion.conf中表明:
$ sudo mkdir /var/run/motion
现在再试着启动它:
$ sudo motion [0] Processing thread 0 - config file /home/carla/.motion/motion.conf [0] Motion 3.2.12 Started [0] Motion going to daemon mode
到目前为止很好,现在再试一下localhost:8081
1、Ganglia是一个集群监控软件,可以监视和显示集群中的节点的各种状态信息,比如:CPU、mem、硬盘利用率、I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现,此软件主要是用来监控系统性能的软件,通过曲线可以很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
它是分布式的监控系统,有两个Daemon,是一个Linux下图形化监控系统运行性能的软件,界面美观、丰富,功能强大。
RRDtool是系统存放和显示time-series (即网络带宽、温度、人数、服务器负载等) 。并且它提出有用的图表由处理数据强制执行有些数据密度。
2、Cacti
是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具,通过snmpget来获取数据,使用RRDTool绘画图形,提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结 构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。
3、Zenoss
是一款智能监控软件,允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。
Zenoss提供功能丰富的产品,以监测整个IT基础设施:
网络 -路由器,交换机,防火墙,接入点
服务器 -微软的Windows , Linux , Unix系统,惠普, NetApp,戴尔
虚拟化 -完整虚拟机虚拟化基础架构( VI3 )管理, XenSource监测
应用领域 -Process(程序),Port,网络应用服务, Web服务,数据库,中间件,商业企业应用方案
4、Argus
是一个网络连接监控器,可以利用它来定制监控网络中符合某种条件的计算机,例如网络空闲、断开等。
5、Monit
是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于UNIX平台,可以自动修复那些已经停止运行的程序,适合处理那些由于多种原因导致的软件错误。
6、Nagios
是一个监视系统运行状态和网络信息的监视系统,能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios的主要功能特点:
监视网络服务(SMTP、POP3、HTTP、NNTP、PING等)
监视主机资源(进程、磁盘等)
简单的插件设计可以轻松扩展Nagios的监视功能
服务等监视的并发处理
错误通知功能(通过email、pager或其他用户自定义的方法)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)