2024年5月1日发(作者:)

20078

产品设计与实现

远程网络视频监控系统的设计与实现

邓璐娟王利亚刘涛丁孟宝

(郑州轻工业学院,450002)

【摘要】

基于Internet的远程视频监控是视频监控系统的最新发展趋势,它将摄

像头采集的视频信息通过视频服务器发布到网络上,能够使异地人员通过一台连接到

Internet上的PC机进行观看,从而对监控现场进行监管。本文以对校园内一栋教学楼

的远程视频监控为背景,首先介绍了整个系统的基本硬件结构及视频信息和控制信息

在系统中的传输过程,然后提出了远程监控系统中几个关键技术的实现方法,最后对

系统中的主要软件模块作了概述。

【关键字】

视频监控系统C/S模式套接字组播

一、引言

视频监控是安防领域的主要手段之一,对于保障

人们日常生产和生活的安全具有重要意义,是大型企

业诸如集团化公司、邮电、银行等信息交流广泛的企

业生产与管理的必备系统。

目前,随着互联网的大范围普及,社会信息化的

日益发展,信息技术、网络技术、通信技术以及多媒

体技术逐渐融合,视频监控也从传统的安防监控向数

字网络监控发展。以网络为基础的视频监控突破了时

间、地域的限制,只要有网络存在的地方就可以建立

网络监控系统,省去了传统的布线和线路维护费用,

降低了监控成本;用户在授权的情况下,就可以不受

地域限制随时按需监控,实现即插、即用、即看。

本文介绍了基于C/S模式,通过互联网对校园内一

栋教学楼的远程视频监控系统的实现方案及关键技

术。

二、系统硬件结构及主要部件功能

网络视频监控系统结构如图1所示:该系统由前端

设备、传输设备、多路视频分配器、网络视频服务

器、本地显示器、终端客户机等部分组成。前端包

括:摄像机、镜头、云台、防护罩等设备。传输部分

由视频线缆、电源线缆、控制线缆和传输线缆等组

成。本地主机接连接4路视频输入,集监视、录像、多

种画面分割、画面切换、回放检索、打印、等功能于

一体。终端客户机实现远程视频回放和对云台的监

控。

网络视频服务器是一种压缩、存储、处理视音频

数据的专用计算机,它由视音频压缩编码器、大容量

存储设备、输入/输出通道、网络接口、视音频接口、

RS422串行接口、协议接口、软件接口、视音频交叉点

矩阵等构成,同时,提供外锁相和视频处理功能。

视频服务器是前端的核心设备,在其上运行视频

数据处理模块,主要实现视频数据的实时采集和视频

图像模拟信号的数字化转换、压缩编码和动态存储、

视频图像的实时播放控制和网络传输,以及对摄像机

的接入和控制。

一路视频信号对应一台监视器或录像机,一台摄

像机的图像送给多个管理者观看时,就需要视频分配

器。因为并联视频信号衰减较大,送给多个输出设备

后由于阻抗不匹配等原因,图像会严重失真,线路也

不稳定。视频分配器除了阻抗匹配,还有视频增益,

使视频信号可以同时送给多个输出设备而不受影响。

在一台监视器上同时观看多个摄像机图像,需要

用画面分割器。分割器除了可以同时显示4个摄像机的

图像外,也可以显示单幅画面,可以叠加时间和字

符,设置自动切换,连接报警器材,也可以送到录像

机上记录。

-45-

产品设计与实现

20078

来很大的负担。因此,流媒体数据在传输或存储之

互联网

校园局域网

交换机

网络视频

服务器

控制线

多路视频

分配器

视频线

本地

观看

前,先要进行压缩处理,以便存储和传输,传送到目

的地后再解压缩播放出来。在本系统中采用MPEG-

4编解码技术。

MPEG是活动图像(MovingPictureExpertGroup)

的简称,是一个国际标准化组织,它制定了一系列的

音频和视频压缩标准,主要有MPEGI,MPEG2,MPEG4,

MPEG7和MPEG21。MPEG-4是超低码率运动图像和语

言的压缩标准,它不仅是针对一定比特率下的视频编

码,更加注重多媒体系统的交互性和灵活性。与其他

视频压缩编码标准相比,MPEG-4标准对传输速率要求

比较低,网络传输占用带宽小,能通过各种方式进行

远程视频图像传输,是适合于网络视频传输的佼佼

者。

2、网络传输技术

视频图像的传输质量直接影响系统的监控质量,

数字视频信号虽然已经过压缩,但数据量还是很大,

特别是当几路视频信号同时在网络上传输时,大量的

数据传输会使得传输网络变得拥挤,这会造成数据的

延迟及丢失,因此良好的网络通信通道和通信协议的

控制命令发送

图1网络视频监控系统结构图

三、网络视频监控系统的视频传输与处理模块

整个系统由服务器端和客户端两部分组成,服务

器端和客户端通过Socket套接字在整个互联网上进行通

信,视频数据流传输与处理流程见图2:

服务器端

本地视频回放

视频采集

数据存储

视频压缩

网络传输

云台镜头控制

控制命令接受

远程客户机端

视频显示

视频解压缩

网络传输

选择至关重要,IP协议是IP层通用的协议;常用的传输

层协议有TCP、UDP、实时传输协议RTP(Real-

timeTransportProtocol)、实时传输控制协议RTCP

(Real-timeTransportControlProtocol)等。

TCP是传输控制协议的缩写,它是面向连接的,

提供可靠流服务,提供确认与超时重传机制、滑动窗

口机制等。但是TCP的这些机制增加了网络开销,不适

合传输突发性的大量数据或者实时性数据,如音视频

流。

UDP是无连接的传输协议,不提供可靠性措施,

不必在数据报丢失或出错时要求服务器再重发,因此

紧凑快速,特别适合于实时性要求高的数据传输场

合。由于音频数据和视频图像数据的传输往往要求实

时传输,同时又允许在性能要求范围内存在数据错误

率和丢失率,因此UDP协议适合对音频和视频数据传

输。

但是由于UDP存在不可靠性,基于UDP的应用程

序,必须自己解决诸如报文丢失、重复、失序和流量

控制等问题。因此,在UDP协议之上,还必须使用多

媒体数据传输的RTP和RTCP协议。RTP协议提供实时

的、端到端的数据传送服务,采用RTP协议对音频、视

视频信号

RTP/RTCP

控制信号

TCP/IP

图2视频传输与处理示意图

安装在现场的摄像头和麦克将采集的模拟音视频

信号送入网络视频服务器。模拟信号被分成两路,一

路直接送入本地监视器进行本地回放,另一路被送入

编码器编码成MPEG-4的视频流和音频流,从编码器出

来的音视频流再被分为两路,一路送入本地硬盘存

储,另一路通过网络发送到客户端。客户机端用户根

据分配的用户名和密码访问服务器主机,接收网络数

据包,经过解码还原成原来的视频图像,就可以实时

察看监控录像,并发送相应的控制信息对云台、摄像

头进行远程控制,实现远程监控。

四、实现远程视频监控的关键技术

在远程网络视频监控系统中,需要采用了许多先

进的技术,主要有数字视频压缩编码技术、网络传输

技术、组播技术以及多线程技术。

1、数字视频压缩编码技术

由于流媒体信息源所产生的数据量非常大,如果

直接进行传输或存储,将会对网络带宽和存储空间带

-46-

20078

产品设计与实现

DirectShow是微软公司推出的新一代基于组件对象模型

COM(ComponentObjectModel)的多媒体开发包,主

要负责在Internet上音视频流的捕捉和回放。

DirectShow支持多种音视频编解码器和多种媒体类型,

可以提供高品质的媒体流解码和回放,为播放视频监

控中涉及到的各种类型的音频、视频数据提供了非常

有效的途径。

DirectShow使用FilterGraph模型来管理整个数据流

的处理过程;参与数据处理的各个功能模块叫做

Filter;各个Filter在FilterGraph中按一定的顺序连接成

一条“流水线”协同工作。

3、采用Windows的Socket套接字实现数据传输

Socket实际上是指一个通信端点,借助于它,用户

所开发的Socket应用程序可以通过网络与其他Socket应

用程序进行通信。本系统使用VC++6.0配套的MFC基本

类库中CAsync-Socket类对TCP/IP通信进行编程。

视频图像发送的基本过程:(1)建立Winsock2

MulticastSocket;如下:MultiSocket=WSASocket

(AF_INET,SOCK_DGRAM,IPPROTO_UDP,NULL,0,WS

A_FLAG_OVERLAPPED|

WSA_FLAG_MULTIPOINT_C_LEAF|

WSA_FLAG_MULTIPOINT_D_LEAF);//其中

SOCK_DGRAM表示基于UDP协议进行传输。(2)初始

化视频采集压缩卡,启动压缩采集;(3)建立输出到

缓冲区的流,由回调函数将采集的视频数据送至缓冲

区,设为64KB,缓冲区数据满时启动数据发送线程,

通过IP组播放式将数据发送出去。

客户端视频流接收过程:(1)输入连接发送端的

IP地址,向发送端发送数据请求;(2)当得到发送端

的确认消息后,启动接收播放数据线程,创建用户界

面窗口;(3)建立Winsock2MulticastSocket,根据发

送端传回的组播地址及端口加入此IP组播组;(4)建

立DirectShowFilterGraph,并启动运行;(5)在

Direct-Show请求数据时,从MultiSocket中读取数据(每

个IP数据包为64K)送到DirectShow的Buffer,此后视频

流的解码和播放都由DirectShow来完成。

六、结束语

本监控系统具有视频流压缩、实时视频和音频预

览、视频信号和音频信号切换、本地录像文件回放、

实时网络传输、远程文件回放和下载、支持流协议等

(下转第54页)

频数据进行封装,即使在某些包被丢失的情况下也能

对其他包进行解码,另外,时间戳信息便于解码时保

持音频和视频信号的同步。RTCP是RTP的控制协议,

用于监视网络的服务质量和数据接收双方的信息传

递,RTCP提供关于数据传输质量的反馈,该功能与其

他传输协议的流量控制和拥塞控制机制相对应。

3、IP组播技术

在IP协议下,视频数据的传送采用组播

(Multicast)方式,对那些要接收视频流的客户机,传

输端通过一次传输就可以将信息同时传送到一组接收

者;这样可以有效地减轻网络负担,避免网络资源的

浪费;也使发送端编程更简洁。IPv4中的D类地址即是

组播地址,最高位为1110,范围是224.0.0.0 ̄239.25-

5.255.255。

4、多线程技术

为了使编解码和数据的传输能同步进行,应用程

序采用多线程结构。进程是应用程序的执行实例,线

程是Win32的最小执行单元,一个进程包含一个主线程,

可以建立另外的多个线程。线程是系统分配处理器时

间的基本单元,并且一个进程中可以有多个线程同时

执行代码。Win32API可提供多线程编程,但是开发难

度大,MFC对其进行了封装,并且封装了事件、互斥

和其他Win32线程同步对象,提供了CwinThread类,使

编程更加方便、快捷。

五、系统主要模块的实现

本系统采用VC++6.0开发完成视频采集、存储、磁

盘管理和对云台和摄像机的控制,用户权限管理等功

能。VisualC++支持面向对象的编程方法,提供了简单

高效的方法来操作应用程序类。

1、视频采集与压缩

视频采集压缩卡可以完成将模拟信号转化为数字

信号并进行压缩编码,利用其提供的SDK还可以方便

的进行二次开发。

2、采用DirectShow实现实时图像和视频文件的播

为了支持多媒体信息的采集、压缩、解压和回

放,微软提供了两种在Windows中进行多媒体处理的开

发包:VideoForWindows(简称VFW)、DirectShow。

VFW是Microsoft于1992年推出的关于数字视频的一个

软件包。其使用简单方便,但是可控制性差。

-47-

产品设计与实现

(1)初始化发送端和接收端:主要完成1/0端口

的配置,使能发送器/接收器,启动计数器等;

(2)发送器/接收器配置:先打开配置方式,再

配置发送/接收器,最后使能收发功能;

(3)接收包/接收包处理;

(4)发送/接收数据:完成数据包的发送/接收操

作;

(5)读取A/D转换结果:等待AD转换完成后,读

取A/D转换结果数据,并开始接受新的转换;

六、视频传输模块设计

视频传输模块收到无线接收模块递交的视频数据

后,可以通过串口或网络接口将其传输到视频应用服

务端,本设计采用网络接口进行数据传输。目前,互

联网上传输视频数据大多采用UDP协议。UDP协议提供

非连接、不可靠的数据传输,由于接收端只对收到的

UDP数据包进行简单的完整性校验,丢弃有错误的数

据包,因此数据传输速度较快。然而,为了提高数据

传输的准确性和减少因使用UDP协议而额外增加的、

繁琐的数据确认操作,本设计选用面向连接的、可靠

的数据传输协议——TCP,视频传输模块与视频应用服

务端之间的通信过程如图3所示:

20078

统,则可以使用Kylix完成相同的功能)。由于BCB的

Image类可以完成精确到像素的图像处理能力,可以将

BMP,Drawing、自定义图形等显示成图像。因此,

SocketAPI从网络接收视频数据后,首先将接收到的

JPEG图像转换成BMP,然后将其传送给Image对象,

Image对象最后处理视频数据、生成图像视频并将其显

示出来。

八、结束语

本文提出了一种基于ARMS3C2410X的嵌入式无

线视频监控系统设计。采用嵌入式Linux操作系统进行

视频采集、压缩和打包并通过nRF2401无线发射、接收

模块进行视频数据无线传输,最后通过TCP/IP网络将

视频数据从视频传输模块传输到视频应用服务端,构

成一套完整的无线视频监控系统。由于系统的核心工

作采用高性能嵌入式处理器完成,因此该系统具有结

构简单、性能稳定、成本低廉等优点在油田、油气井

无线视频监控,智能家居等领域具有广阔的应用前

景。

【参考文献】

[1]陈俊宏,EmbeddedLinux嵌入式系统原理与实

务[M].北京:中国铁道出版社,2004

[2]曹翔,实时视频传输在MPLS网络中的QoS研究

[J]微计算机信息,2006,7-3:58-60

[3]NordicVLSIASA.nRF2401SingleChip2.4GHz

RadioTransceiverProductSpecification,2003

.转自《微计算机信息》2007年第7期

视频应用服务端

socket()

bind()

视频传输

socket()

accept()

建立连接

阴塞,等待用户连接请求

write()

请求

read()

处理服务请求

read()

应答

write()

lisen()

(上接第47页)

功能。

【参考文献】

[1]A.MuratTekalp..DigitalVideoProcessing.

PrenticeHallPTR.1998.

[2]卞俊锋,李兆强等.视频监控中心数据传输

控制的设计与实现[J]微计算机信息,2005,21(3):66-

67,106

[3]李虎,林中.远程网络视频监控系统的设计

与实现[J].数据通信2004,第6期:51-53

[4]欧建平,娄生强.网络与多媒体通信技术[M].

北京:人民邮电出版社,2002:256

转自《微计算机信息》2007年第7期

connect()

图3视频传输模块—视频应用服务端的通信过程

七、视频应用服务端一视频显示模块设计与实现

视频应用服务端采用BorlandC++Builder6.0完成监

控视频的合成(如果视频应用服务端采用Linux操作系

-54-