摘 要: 设计了一种基于IP Camera的网络视频监控系统,系统通过各种不同的接入服务,提供了C/S、Web、ClickOnce等多种访问方式,实现了多种平台下对视频终端的监控。系统采用类似于DNS的目录服务,将所有物理节点、逻辑节点均统一编码,并存储到本地配置数据库或文件中,实现了视频终端、客户监控端、视频数据文件等信息的管理和访问。系统在有线和无线两种不同的传输方式下,根据不同的网络传输特点,分别采用了TCP和UDP两种不同的通信方式和通信机制向外部提供视频数据服务,提高了视频流畅性。
关键词: IP camera;视频监控;TCP/IP;目录服务;视频解码
随着网络技术的发展和网络建设的普及,与传统的模拟监控比较 , 基于网络技术的数字化监控系统具有结构灵活、抗干扰性能强、支持远程传输、便于自动化管理和易于大规模生产的优势,传统的模拟监控系统的监控和调度功能将逐渐被基于IP Camera的网络视频监控系统所替代[1]。基于当前的应用背景和技术支持,本文设计了一种基于IP Camera的网络视频监控系统,通过这种带有以太网接口、TCP/IP协议栈[2]、Web Server的智能网络视频监控终端,授权客户端在Internet上可以使用多种访问方式来监控此终端。
1 系统架构
1.1 系统逻辑架构
各个接入服务共享同一个逻辑数据总线,本系统中的数据均通过UDP协议在各个服务之间发送、转移、加工、存储。具体的筛选、处理工作由数据消费者进行[3]。
系统逻辑架构图如图1所示。
1.2 系统数据流向架构
系统数据流向架构如图2所示。
本视频监控系统主要由网络录像服务器(NRU)、视频音频转发服务器(VTDU)、中心管理服务器(CONS)、设备配置和管理服务器(DMS)几部分构成。其中,网络录像服务器主要实现音视频的录像;音视频转发服务器主要实现音视频数据的转发;中心管理服务器(CONS)主要实现对前端设备和客户端的认证和管理;接入服务器(CONS)主要实现对信令的解析;设备配置和管理服务器主要实现对所有设备的配置和显示所有设备的状态。
2 系统各组成部分功能
2.1 录像服务器
录像服务器的功能有:根据中心管理服务器的指令,向转发服务器请求媒体数据,并对媒体数据进行录像;当客户端向录像服务器请求媒体数据时,录像服务器把录像文件的数据发送到客户端。
2.2 中心管理服务器
中心管理服务器负责保存视频服务器等设备的安装信息及所有设备的报警信息和操作日志;根据配置信息,对需要录像的视频,向录像服务器发送请求录像信息;保存客户端和管理平台的用户权限。
2.3 转发服务器
向客户端、管理平台、录像服务器转发来自视频服务器的媒体数据。
2.4 配置终端
配置终端对系统中的所有设备进行安装和参数配置与查询。
2.5 接入服务器
接入服务器对系统中的所有设备进行调度,解析设备之间的协议。
2.6 客户端
客户端功能:播放视频图像;对播放的视频图像进行本地录像;本地回放录像文件;接收报警信息。
2.7 视频服务器
对于无线视频服务器,通过测试在无线网络上用TCP传输媒体数据时延时太大,所以无线视频服务器只能采用UDP进行媒体数据传输。对此,需要作以下几个方面的设计:
(1)转发服务器
无线传输时采用一个线程接收UDP的数据,把接收到的媒体数据放到缓冲区;有线传输时采用一个线程接收TCP的数据,把接收到的媒体数据放到缓冲区。
(2)接入服务器
系统设计一个UDP接收和发送模块,为每个无线视频服务器在UDP模块上建立一个TCP连接,根据视频服务器的类型,在客户端请求数据时给客户端不同的应答信息。
(3)客户端
采用视频解码策略、视频参数的重发功能和云台参数设置的重发功能。
(4)数据库提供的树型结构中增加一个视频服务器的类型。
3 系统主要部分工作流程
3.1 注册流程
视频终端向服务器注册过程如图3所示。
3.2 请求媒体数据
客户端连接指定视频终端后,向视频终端请求媒体数据,接入服务器将信息进行转发到视频终端。视频终端收到命令后将媒体数据发送到接入服务器并转发到客户端,也可以直接将媒体数据发送到客户端。控制命令仍然通过接入服务器转发,从而提高网络视频效率。具体数据流程如图4所示。
3.3 云台控制
客户端访问视频终端时通过接入服务器的数据转发完成对视频终端连接的云台进行控制。具体数据流程如图5所示。
3.4 配置终端
管理平台可以对指定的视频终端进行远程配置,通过接入服务器的数据转发完成各种参数的配置。具体数据流程与图5所示类似。
4 软件实现原理
4.1 网络视频传输策略
在网络带宽不稳定或者较差的情况下为了尽量保证网络视频服务器传输到服务器的视频数据的完整性和实时性[4],采用了双重处理机制:
(1)单位时间内比较视频历史缓冲中的数据包个数,如果发现数据包个数大于500包,则执行清除历史缓冲操作,并重新关闭打开编码器来编码出一个新的IDR帧用于传输[4];
(2)定时比较当前编码帧的时间与待发送的数据包的时间差值,如果大于5 s,则执行清除历史缓冲的操作,并重新关闭打开编码器来编码出一个新的IDR帧用于传输[5];
(3)另外为了保证对带宽的充分利用以及传输到服务器端的码流可以正常播放,在清除历史缓冲时增加了1帧的完整性判断,即必须保证当前传输的视频数据非1帧才执行清除历史缓冲的操作[6]。
4.2 目录服务功能设计
目录服务具有配置终端和中心管理服务器的功能,主要用于保存系统中所有设备的安装和参数配置,并提供查询、修改服务;保存系统中所有硬件服务器、软件服务的安装和配置信息,并提供查询、修改;视频文件的目录管理服务;客户端的配置、权限等信息维护;权限的保存、查询、管理接口;体现系统一定的拓扑结构。
目录服务功能实现:
(1)类似于DNS服务,采用UDP通信向外部提供服务[7]。
(2)目录服务之间也可互相访问,从而提供目录冗余,它需通过管理人员设置,以免形成回路。
(3)所有物理节点、逻辑节点均统一编码,并存储到本地配置数据库或文件中[8]:①服务器采用网卡“MAC地址”编码,计算机名作为默认摘要信息;②运行在服务器上的服务程序,采用“MAC地址.服务编码.端口号”形式编码,例如“1234567890AB.MS1:8080”;③C/S客户端计算机采用“MAC地址:端口号”唯一编码;④摄像头采用内部物理地址编码;⑤企业组织的层级采用ASCII方式编码;⑥访问用户采用字符串编码。
(4)目录内容淘汰方法[9]包括:静态内容长期保留和动态内容按约定超时周期淘汰。
本文阐述了IP Camera的网络视频监控系统的系统设计以及主要部分的实现原理。着重介绍了视频数据传输以及目录服务的设计方案和实现方法,并对其中的一些关键技术的实现作了详细的描述。系统服务器端采用Visual C++编程语言实现各种服务[10]。该系统支持多种平台的客户端访问,并具有良好的交互性和流畅的视频效果。
参考文献
[1] 徐力,孔岩.视频监控系统的现状和发展趋势[J].信息技术与信息化,2005(4):60-62.
[2] 任泰明.TCP/IP协议与网络编程[M].西安:西安电子科技大学出版社,2004.
[3] 顾尚杰,薛质.计算机通信网基础[M].北京:电子工业出版社,2000.
[4] 毕厚杰,汪涛.宽带IP(数据)和视频接入技术(第1版)[M].北京:北京邮电大学出版社,2002.
[5] 精英科技.视频压缩与音频编码技术[M].北京:中国电力出版社,2001.
[6] 黎洪松.数字视频技术及其应用(第1版)[M].北京:清华大学出版社,1997.
[7] 蒋东兴.Windows Sockets网络程序设计大全[M].北京:清华出版社,1999.
[8] PURI A,CHEN Xue Min,LUTHRA A.Video coding using the H.264/MPEG-4 AVC compression standard[J].Signal Processing Image Communication,2004(19):793-849.
[9] 吴乐南.数据压缩[M].北京:电子工业出版社,2000.
[10] 陈光明.实用Visual C++编程大全[M].西安:西安电子科技大学出版社,2000.