远程视频监控系统中网络通信模块的设计.pdf
《远程视频监控系统中网络通信模块的设计.pdf》由会员分享,可在线阅读,更多相关《远程视频监控系统中网络通信模块的设计.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、产品设计与实现_ I 即r q M U m 鲁g e o I 竹2 0 0 93远程视频监控系统中网络通信模块的设计张明杰西安邮电学院信管系,陕西,7 1 0 0 6 1【摘要】针对远程视频监控系统需要将多个现场视频数据方便、高效地通过计算机网络传送到多台监控主机上的要求,文章介绍了一种基于过滤器技术的远程视频监控系统网络通信模块的设计,并详细阐述了网络通信模块中网络过滤器以及组播传输方式的实现方法。该通信模块在实际应用中效果良好。【关键词】远程视频监控网络通信模块D i r e c tS h o w过滤器C O MI P 组播一、引言远程视频监控系统在各个领域都有着广泛的应用,是当今大型企业
2、、银行、厂矿等信息交流广泛的企业生产和管理的必备系统。如何将多个现场的监控数据方便、高效地通过计算机网络传送到多台监控主机上,是远程视频监控系统需要解决的一个主要问题。因此,在远程视频监控系统的开发中,最关键的部分是网络通信模块的设计。笔者在煤矿远程视频监控系统的开发过程中,采用V i s u a lc+编程工具,运用面向对象的程序设计思想和D i r e c t S h o w 技术,实现了以组播方式的多路视频的远程监控和传输。二、网络通信模块的设计系统的网络通信模块的主要功能是以组播方式发送和接收网络视频流,它的实现主要是网络传输过滤器的开发,包括网络发送过滤器和网络接收过滤器2 个部分,
3、如图l 所示。网络发送过滤器用于处理经压缩编码过滤器编码后的视频流,将数据流分块打包后发送出去;网络接收过滤器用于从网络获取媒体数据并将数据传送到下一级解码过滤器。因此,网络通信模块设计的关键是网络通信过滤器的开发。一4 4 一三、过滤器开发技术在对网络通信系统的过滤器设计中,由于媒体格式、压缩方式、硬件属性等方面的特殊要求,使用开发软件自带的标准过滤器往往不能满足要求,用户经常需要自行开发过滤器,因此,就引入了过滤器开发技术。D i r e c t S h o w 是微软公司推出的新一代基于C O M 的流媒体处理的开发包,提供了很多标准过滤器(F i l t e r)供用户直接使用,同时为
4、过滤器组件开发提供了一套基类库(B a s eC l a s sL i b r a r y),包括过滤器基类、针脚基类和一些辅助类。基类库为过滤器组件的开发提供了一个框架,省去了复杂的底层编码工作,因此,本文选择D i r e c tS h o w 开发过滤器组件,主要工作集中在以下2 个方面:传输和处理媒体流;将过滤器封装为C O M 组件。羚过滤器l7”视频接收l I过滤器l1图1 视频网络通信流程图1,媒体流的传输和处理为了传输数据,用户过滤器首先要与过滤器图中麟一一一一一 Hj 厂_一一一一茎|一万方数据2 0 0 93其它过滤器连接起来。连接时要进行媒体格式和内存分配器的协调。过滤器
5、之间通过针脚相连。过滤器之间媒体格式和内存分配器的协调实际上是通过针脚之间的通信完成的。主动连接方的过滤器的针脚首先获取自身支持的所有媒体格式,然后将其中1 种格式送交给被动连接的一方。被动方的针脚进行判断:如果被动方支持该格式,媒体格式协调成功;如果被动方不支持该格式,就通知主动方,主动方再提供1 种不同的格式送交被动方,直到被动方支持被提供的格式,协调成功,否则,当主动方用完所有支持的格式,协调失败。D i r e c tS h o w 过滤器使用一种称作内存分配器(A l l o c a t o r)的C O M 对象管理媒体流数据。在连接2个过滤器前,其中一个过滤器上的针脚提供1 个内
6、存分配器,另外一个过滤器上的针脚对该内存分配器进行检测。当2 个针脚都支持该内存分配器时,协调成功。开始传输媒体流之前,内存分配器负责创建一系列内存缓冲区。媒体流传输时,上游(U ps tr e a m)过滤器填充这些缓冲区,并将它们传送给下游(D o w n s tr e B f f r l)过滤器。D i r e c tS h o w 使用一种称作媒体采样包(M e d i aS a m p l e)的C O M 对象管理单个缓冲区。通过控制媒体采样包对象可修改当前缓冲区中的媒体类型、时间戳等信息,也可利用算法处理媒体数据,从而实现对媒体流的处理功能。2、C O M 组件的实现C O M
7、组件的实现包括以下内容:用接口规定过滤器组件对外提供的功能;提供类厂,用以创建C O M 对象的实例;提供C O M 对象所在d U 文件的各个辅助函数,以完成C O M 组件在应用程序中的载入和释放、在注册表中的注册和注销。D i r e c tS h o w 中的过滤器、针脚等C O M 对象通过接1 3 对外提供各种功能。除了提供标准的接口之外,D i r e c tS h o w 还提供了D E C L A R E I NT E R F A C E 宏让用户自定义接口,从而满足用户对过滤器组件的指定要求。C O M 实现机制中用类厂创建C O M 对象实例。D i r e c t S
8、h o w 提供了类厂类C C l a s s F a c t o r y 和类厂模板类C F a c t o r y T e m p l a t e。通过将不同的类厂模板的内容填入类厂,实现不同的类厂对象,从而创建不同的C O M 对象实例。产品设计与实现。材嘴w t 柏镪惭口守-臼B m过滤器是d l l 文件格式的C O M 组件,需要以下函数:D l l M a i n(载入时的入口)、D 1 1G e t C l a s s O b j e c t(创建类厂对象)、D l l C a n U n l o a d N o w(判断是否释放d 1 1)、D l l R e g i s t
9、 e r S e r v e r(在注册表中注册d 1 1)、D l l U n r e g i s t e r S e r v e r(在注册表中反注册d U)。D i r e c t S h o w 已经实现了前3 个函数,后面的2 个函数通常调用D i r e c t S h o w 中的函数A m o v i e D l l R e g i s t e r S e r v e r 2()实现。四、网络通信模块的实现本系统中网络过滤器的开发是以微软D i r e c t X 9 0S D K 示例为基础实现的。1、网络通信过滤器的实现(1)网络过滤器的基本框架网络滤器的基本框架代码如下:
10、C l a s sC l n p u t P i n 定;义过滤器输入引脚类由C B a s e l n p u t P i n 派生C l a s sC N e t w o r k S e n d 定义一个由C B a s eF i l t e r 基类派生的类C l a s sC N e t O u t p u tP i n 定义过滤器输出引脚类由C B a s e O u t p u tP i n 派生C l a s sC N e t w o r k R e c e i v e r F i h e t 螈兰义一个电C B a s eF i l t e r 基类派生的类(2)网络过滤器的具
11、体实现在网络过滤器的具体实现中,要考虑所采用的视频编解码器的媒体格式的特征。本文采用D i v X N e t w o r k s 公司的D i v X 5 0 2 编解码器实现视频图的压缩、解压缩编码处理,并在G e t M e d i aT y p e i 垂i 数中定义媒体格式代码。网络发送过滤器中G e t M e d i aT y p e 函数的部分代码:C M e d i aT y p e 牛p m t;p m t 一 S e tT y p e(&M E D I A T Y P E _ V i d e o);股置媒体主类型p m t-S e t S u b t y p e(&T I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 远程 视频 监控 系统 网络 通信 模块 设计
限制150内