Welcome

首页 / 软件开发 / .NET编程技术 / 海康威视频监控设备Web查看系统(一) 概要篇

海康威视频监控设备Web查看系统(一) 概要篇2015-01-06题外话:

为什么在开始之前先说题外话呢?主要是为了怕有人误会,以为这里要写的是一个关于视频流处理的文章。其实这个系列的几篇文章可能和视频流的处理半毛钱关系都没有,冲着视频技术来的看官们,可能让你们失望了。这个系列里主要涉及的技术大概有.net的socket处理,C#写ActiveX插件,少量的线程处理,以及对非托管C++库的调用。

另一方面,这个系列文章说的是一个综合的小项目,没有复杂的功能,没有严谨的项目管理过程,但却有一个技术探索的一般过程。好了,题外话到此结束,下面是正题了。

需求描述:

前一段时间公司兄弟部门提出需求,希望能够把公司部分公共区域的监控视频共享出来给员工查看,这个事情最后落地到鄙人身上。经过多方联系,了解到需求实现的两个制约条件。

网络条件:员工使用网段与监控设备所在网段为不同网段,之间有物理隔离,无法直接访问。这个问题比较容易解决,迁移一下设备所在的网段就能解决。

设备限制:海康的监控摄像头最多只支持6个客户端同时连接,无法满足现有需求。这个比较难搞,联系厂商,厂家说不提供这一块的服务,需要自己解决。这态度,我就呵呵了。

方案思路:

现状就是这样,没有其他办法,只能开发来解决这些问题了。其实想想问题也没多麻烦,数据只要采集到服务器上一切就搞定容易了。沿着这条初步思路,在海康官网下了一堆SDK,你还别说,东西挺全的,什么方法都提供现成的了。什么视频采集、设备设置、视频播放这些都有现成的接口可以直接使用。更让我惊喜的是,SDK里居然还提供C#和Java版本的DEMO,好吧,看到这些前面联系客服碰的钉子就不放心上了,可能客服MM那天失恋了,心情不好也说不定。

说回正题,既然有这些给力的SDK就该搭建一个原型来验证把视频数据通过服务端接到客户端这种思路是否正确,具体实现下一篇会细说,这里就长话短说,原型验证成功。说明思路很正确,下一步就是具体的开发工作了,在原型基础上一步步的重构,最后一个从视频设备读取视频数据转发给客户端的系统就搞定了。

经过进一步压力测试以后发现有性能不能满足需求,需求要求能够满足公司近千人的使用,并发要求很高,并且视频服务器要求必须及时处理所有数据到客户端的转发,否则客户端将出现跳帧,卡顿的问题。解决压力问题从两个方面着手:

进一步重构优化现有代码,提高性能。

设计分布部署。

最后的最后上线的系统,部署方案如图所示: