基于DVR的网络数字视频监控系统的实现

2014-12-16 08:30
关键词:缓冲区客户端服务器

刘 鑫

(沈阳工程学院计算机基础教学部,辽宁沈阳110136)

目前传统的模拟视频监控已不可逆转地淡出市场应用,取而代之的是数字视频监控.同时伴随着多媒体技术、数字信号压缩技术与互联网技术的不断发展又变化出诸多新型应用.当前,基于DVR的网络摄像机视频监控系统已经深入到各个应用领域,并成为事实上的监控标准.在工程中,通过计算机网络进行应用拓展,可以弥补现有设备的不足,使监控应用实现了高层独立,使得监控真正可以摆脱距离、网络的限制,走入人们的日常生活.

1 系统设计

1.1 系统功能

在应用中,为了使幼儿园家长更易于使用该系统,所以系统设计的目标是构建一个基于B/S结构的互联网数字视频传输与分发平台.该平台具备如下功能:

1)用户身份识别与权限分配.只有注册的用户才能进入系统,而且不同的用户有不同的权限,权限越高的用户使用的功能就越全,对前端摄像设备的调用权限就越高.

2)监控画面列表发送.系统通过判断注册用户登录后的信息获得身份权限,按不同的权限级别发送不同的可供用户选择的监控画面列表.

3)监控设备图像画面发送.用户登录后可以对分布于幼儿园多个地点的不同监控摄像机画面进行切换,浏览不同的摄像机画面.多个用户也可以同时监控同一个摄像头的区域图像.

4)视频数据录像功能.系统可同时对多路信号进行实时监控录像,录制的视频文件保存在数字硬盘中,提供录像回放功能,并可通过时间日期进行查询播放.

5)公网流媒体支持.当下该幼儿园使用ADSL数据接入,其带宽远远无法满足多用户大流量的视频远程访问,因此系统需要使用位于公网机房的流媒体服务器转发服务,以保障画面的清晰流畅.

1.2 网络架构

该系统网络架构可以分为前端监控设备、中控平台、流媒体服务器3部分.

在前端监控设备中,监控摄像头接入DVR将视频信号转换成数字信号发送进监控系统,存储在数字硬盘中作为回放数据.视频数据传输到中控平台,中控平台本地设有管理服务器、数据调度服务器,监控中心有远程的电信机房,设有流媒体服务器、存储服务器.

客户端与前端设备的数据传输有直连和转发2种模式.

1)直连模式,即客户端通过浏览器直接连接前端DVR设备并获取视频信号.

2)转发模式,即客户端与DVR设备的数据传输通过流媒体服务器进行转发.

流媒体服务器作为客户端和硬件设备的中间连接层,可使监控设备、DVR设备或软件系统升级不会影响整个系统的正常运行,有利于系统的扩展和升级.监控系统原理如图1所示.

图1 监控系统原理

1.3 软件架构

该系统软件架构设计采用应用层、中间服务层和数据层3层体系结构,同时在厂商SDK的基础上,采用了组件复用技术,提高了系统的可维护性和可升级性.

1)应用层.该层实现了系统的数据流媒体转发、录像数据存储与检索、设备管理等功能.客户可通过Web浏览器和客户端专用软件2种方式登录系统平台.

2)中间服务层.与海康威视DVR设备、摄像头设备、及其他硬件设备兼容,为应用层提供统一接口模式,实现了硬件设备管理、硬件设备检索等功能.

3)数据层.在数字硬盘中储存系统所有信息,包括管理中心数据库、服务器日志文件、视频文件等.

2 关键模块的实现

2.1 浏览模块的实现

视频画面浏览可分为流媒体服务器转发和DVR设备直连2种播放模式.如果客户想通过浏览器浏览视频,客户端要通过提交客户信息到管理中心,以验证客户的Token值并获取用户权限和浏览的通道信息.客户端将Token值发送到管理中心服务器后,通过验证权限获得相关信息.如果是直连DVR设备模式,客户就直接通过帐号密码登录到DVR设备获取相关信息.

流媒体服务器主要负责视频数据分发及响应客户端的请求,主要功能包括DVR数据资源管理等.客户通过Web浏览器登录服务器,根据权限请求回调对应通道的视频数据.1路视频信号可以有多个用户在观看,所以流媒体服务器1个通道保持1个分发队列.普通用户一般不设置成1个用户同时观看多个视频通道,只支持观看1个视频通道的信号,但可以通过切换的方式改换不同的视频通道.

对幼儿家长级的用户远程视频监看提供服务,是该系统实现的重点内容.由于DVR设备对直连播放处理能力有限,一般最多可接入用户仅为10个以内,且在跨网段及安全性上面存在着很多的问题,比较容易遭受攻击.另外,传输时在主干网、接入带宽和出口带宽等多处容易形成瓶颈,网络负载结构非常不理想.

因此,系统设计了外网流媒体转发结构.当有多个家长需要访问同一位置的视频时,流媒体服务器将从前端DVR中一次性抽取该视频,进行多路转发,从而在幼儿园出口上只占用1个通道的资源.同时利用部署于媒体云上的流媒体服务器进行转发,可以有效地减轻网络传输中的负载结构问题,节省网络资源与出口带宽,提高视频浏览速度与质量.

2.2 回放模块的实现

客户端可以实现视频回放功能.客户端可以向流媒体服务器发送回放请求,流媒体服务器向管理中心验明用户权限后,向存储服务器请求文件列表,发送到客户端.客户端用获取的文件列表发送回放请求,流媒体服务器连接上存储服务器以获取视频数据,然后转发到客户端.

2.3 数据缓冲模块的实现

该系统主要采用基于B/S模式的网络监控模式,视频数据有可能因为网络传输原因或服务器本身原因,导致其无法及时流畅地到达客户端.所以,为了解决这一问题,可在客户端处引入缓冲策略.

客户端在内存中开辟出一块区域作为缓冲区,将接收到的视频数据首先存放到缓冲区中进行缓冲,当缓冲区填满后,再进行播放,这样可以保证客户端视频播放的流畅性.

在缓冲策略选择上,系统使用的是多缓冲区策略.因为如果只采用单缓冲区,客户端既要将接收的视频数据放入缓冲区中,又要从缓冲区中取出视频数据并发送出来,有可能会导致读写冲突,降低效率,使传送的视频画面出现间隔的停顿.通过使用多缓冲区技术来实现视频数据的持续读出写入,实现了对缓冲区同时读出写入的效果.

2.4 用户访问调度实现

幼儿园家长对DVR的访问时间与频度都是随机数,为了充分利用上传视频出口带宽,优化网络传输水平,该系统结合RBAC完成了用户访问动态调度.通过动态调度,实时平衡幼儿园内各个DVR通道的传输质量,保证了人数优先、区域优先的服务质量.

3 流媒体服务器接收、转发数据相关代码

流媒体服务器接收、转发数据相关代码如下:

Private Sub Timer2_Timer()

Dim mulbits()As Byte

Dim size As Long

Dim GetStr As String

If BaddB=False Then

Set lItem=ListView1.ListItems.Add(,,"退出")

Else

Set lItem=ListView1.ListItems.Add(,,"加入")

End If

size=lstrlen(IP)

ReDim mulbits(size)

CopyMemory mulbits(0),ByVal IP,size

GetStr=StrConv(mulbits,vbUnicode)

lItem.SubItems(1)=GetStr

size=lstrlen(Cport)

lItem.SubItems(2)=IntToLong(Cport)

lItem.SubItems(3)=Format(Date & "" &Time,"yyyy-mm-dd hh:mm:ss")

size=lstrlen(Curl)

ReDim mulbits(size)

CopyMemory mulbits(0),ByVal Curl,size

GetStr=StrConv(mulbits,vbUnicode)

Label7=GetStr

Timer2.Enabled=False

End Sub

Private Sub Form_Load()

Label6=Format(Date,"yyy-mm-dd")

ServerPort=554

RelativePath=False

Call Command1_Click

End Sub

Private Sub Command1_Click()

l=InitStreamServerLib

If RelativePath Then

l=StartServer(ServerPath,ServerPort)'使用相对路径

Else

l=StartServer(,ServerPort)'使用绝对路径路径

End If

l=RunServer

l=SetNewConnectionCallBack(AddressOf CBF_NotifyANewConnection)

Dim TimStr As String

TimStr=Format(Time,"hh:mm:ss")

Call GetTime(TimStr)

If l < >-1 Then Command1.Enabled=False;Command5.Enabled=False;Command2.Enabled=True

End Sub

Private Sub Command2_Click()

l=StopServer()

l=FiniStreamServerLib

If l < >-1 Then Command2.Enabled=False;Command1.Enabled = True;Command5.Enabled =True

End Sub

4 系统测试应用

4.1 DVR 设备直连

系统用户使用界面如图2所示.

图2 系统用户使用界面

在使用DVR设备直连测试中,由于ADSL上传速率仅为640 K,所以128 K的码流也仅能支持4个用户的4路访问.降低码流后,虽然支持的访问数量得到增加,但画面效果很差.这里还需要注意的是,DVR设备自身支持用户数有限.

4.2 流媒体转发

采用流媒体服务器作为数据源进行测试,使用H.264编码方式,分辨率为720×576.通过浏览器内嵌的ActiveX控件方式,用户只需通过浏览器登录访问服务器,即可自动下载注册控件,无需安装客户端软件.此种方式通用性好,用户只要第一次访问时下载成功,以后就可以直接使用.

在客户端使用 ADSL线路,在2 M网络带宽、IE8.0浏览器环境下,视频监控画面清晰流畅,无明显卡顿现象,效果良好.

5 结语

该系统实现了用户通过远程计算机网络对幼儿园中的孩子进行监看的功能,且不受时间和空间的限制.既克服了传统监控设备需要有人值守及管理不便的缺点,又从管理上提高了幼儿园的管理水平与服务档次.使用Web方式对监控设备进行配置和管理,用户无需安装专门客户端软件,直接运行浏览器即可,简单直观,方便快捷.

该系统在低带宽的条件下实现了多媒体信息的大批量分发,系统设计智能、有弹性,可以为不同层次的同种应用提供有效的技术支撑.系统实施简便,造价低廉,同时预留有充足的设计接口可以进行深入开发.

[1]刘 沂.数据压缩与传输技术在远程视频监控中的应用[J].天津冶金,2011,23(2):15.

[2]林 晟.基于B/S模式的视频监控系统的设计与实现[D].厦门:厦门大学,2008.

[3]陈 舒,张星明.一个数字视频监控系统的设计与实现[J].微计算机信息,2012,28(4):30-32.

猜你喜欢
缓冲区客户端服务器
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于网络聚类与自适应概率的数据库缓冲区替换*
嫩江重要省界缓冲区水质单因子评价法研究
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
关键链技术缓冲区的确定方法研究