欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 通讯论文 > 远程视频监控中网络通信模块的设计浅谈

远程视频监控中网络通信模块的设计浅谈

日期:2023-01-24 阅读量:0 所属栏目:通讯论文


摘 要:远程视频监控系统在各个领域都有着广泛的应用,是当今大型企业、银行、厂矿等信息交流广泛的企业生产和管理的必备系统。如何将多个现场的监控数据方便、高效地通过计算机网络传送到监控主机上,是远程视频监控系统需要解决的一个主要问题。因此,在远程视频监控系统的开发中,最关键的部分是网络通信模块的设计。笔者在银行远程视频监控系统的开发过程中,采用VisualC++编程工具,运用面向对象的程序设计思想和DirectShow技术,实现了以组播方式的多路视频的远程监控和传输。

关键词:远程视频监控;网络通信;模块;DirectShow;过滤器;COMIP组播
一、网络通信模块的设计
  系统的网络通信模块的主要功能是以组播方式发送和接收网络视频流,它的实现主要是网络传输过滤器的开发,包括网络发送过滤器和网络接收过滤器2个部分,如图1所示。网络发送过滤器用于处理经压缩编码过滤器编码后的视频流,将数据流分块打包后发送出去;网络接收过滤器用于从网络获取媒体数据并将数据传送到下一级解码过滤器。因此,网络通信模块设计的关键是网络通信过滤器的开发。
二、过滤器开发技术
  在对网络通信系统的过滤器设计中,由于媒体格式、压缩方式、硬件属性等方面的特殊要求,使用开发软件自带的标准过滤器往往不能满足要求,用户经常需要自行开发过滤器,因此,就引入了过滤器开发技术。DirectShow是微软公司推出的新一代基于COM的流媒体处理的开发包,提供了很多标准过滤器(Filter)供用户直接使用,同时为过滤器组件开发提供了一套基类库(BaseClassLibrary),包括过滤器基类、针脚基类和一些辅助类。基类库为过滤器组件的开发提供了一个框架,省去了复杂的底层编码工作,因此,本文选择DirectShow开发过滤器组件,主要工作集中在以下2个方面:传输和处理媒体流;将过滤器封装为COM组件。
  
1.媒体流的传输和处理
  为了传输数据,用户过滤器首先要与过滤器图中其它过滤器连接起来。连接时要进行媒体格式和内存分配器的协调。过滤器之间通过针脚相连。过滤器之间媒体格式和内存分配器的协调实际上是通过针脚之间的通信完成的。主动连接方的过滤器的针脚首先获取自身支持的所有媒体格式,然后将其中1种格式送交给被动连接的一方。被动方的针脚进行判断:如果被动方支持该格式,媒体格式协调成功;如果被动方不支持该格式,就通知主动方,主动方再提供1种不同的格式送交被动方,直到被动方支持被提供的格式,协调成功,否则,当主动方用完所有支持的格式,协调失败。DirectShow过滤器使用一种称作内存分配器(Allocator)的COM对象管理媒体流数据。在连接2个过滤器前,其中一个过滤器上的针脚提供1个内存分配器,另外一个过滤器上的针脚对该内存分配器进行检测。当2个针脚都支持该内存分配器时,协调成功。开始传输媒体流之前,内存分配器负责创建一系列内存缓冲区。媒体流传输时,上游(Upstream)过滤器填充这些缓冲区,并将它们传送给下游(Downstream)过滤器。DirectShow使用一种称作媒体采样包(MediaSample)的COM对象管理单个缓冲区。通过控制媒体采样包对象可修改当前缓冲区中的媒体类型、时间戳等信息,也可利用算法处理媒体数据,从而实现对媒体流的处理功能。COM组件的实现包括以下内容:用接口规定过滤器组件对外提供的功能;提供类厂,用以创建COM对象的实例;提供COM对象所在dll文件的各个辅助函数,以完成COM组件在应用程序中的载入和释放、在注册表中的注册和注销。DirectShow中的过滤器、针脚等COM对象通过接口对外提供各种功能。除了提供标准的接口之外,DirectShow还提供了DECLARE_INTERFACE宏让用户自定义接口,从而满足用户对过滤器组件的指定要求。COM实现机制中用类厂创建COM对象实例。
  DirectShow提供了类厂类CClassFactory和类厂模板类CFactoryTemplate。通过将不同的类厂模板的内容填入类厂,实现不同的类厂对象,从而创建不同的COM对象实例。
组件的实现
  COM组件的实现包括以下内容:用接口规定过滤器组件对外提供的功能;提供类厂,用以创建COM对象的实例;提供COM对象所在dll文件的各个辅助函数,以完成COM组件在应用程序中的载入和释放、在注册表中的注册和注销。
DirectShow中的过滤器、针脚等COM对象通过接口对外提供各种功能。除了提供标准的接口之外,DirectShow还提供了DECLARE_INTERFACE宏让用户自定义接口,从而满足用户对过滤器组件的指定要求。COM实现机制中用类厂创建COM对象实例。
DirectShow提供了类厂类CClassFactory和类厂模板类CFactoryTemplate。通过将不同的类厂模板的内容填入类厂,实现不同的类厂对象,从而创建不同的COM对象实例。
过滤器是dll文件格式的COM组件,需要以下函数:DllMain(载入时的入口)、DllGetClassObject(创建类厂对象)、DllCanUnloadNow(判断是否释放dll)、DllRegisterServer(在注册表中注册dll)、DllUnregisterServer(在注册表中反注册dll)。
DirectShow已经实现了前3个函数,后面的2个函数通常调用DirectShow中的函数AmovieDllRegisterServer2(实现。)
三、网络通信模块的实现
1.网络通信过滤器的实现
本系统中网络过滤器的开发是以微软DirectX9.0SDK示例为基础实现的。
(1)网络过滤器的基本框架网络滤器的基本框架
代码如下:
ClassCInputPin//定义过滤器输入引脚类由
CBaseInputPin派生
ClassCNetworkSend//定义一个由CBaseFilter基类派
生的类
ClassCNetOutputPin//定义过滤器输出引脚类由
CBaseOutputPin派生
ClassCNetworkReceiverFilter//定义一个由CBase
Filter基类派生的类
(2)网络过滤器的具体实现
在网络过滤器的具体实现中,要考虑所采用的视频编解码器的媒体格式的特征。本文采用DivXNetworks公司的DivX5.02编解码器实现视频图的压缩、解压缩编码处理,并在GetMediaType函数中定义媒体格式代码。网络发送过滤器中GetMediaType函数的部分代码:
CMediaType*pmt;
pmt->SetType(&MEDIATYPE_Video);//设置媒体主类型
pmt->SetSubtype(&TIME_FORMAT_NONE);
/设置媒体次类型为任意类型
网络接收过滤器中GetMediaType函数的部分代码:
pmt->SetType(&MEDIATYPE_Video);//设置媒
体主类型
pmt->SetSubtype(&DIVX);//设置媒体次类型
为DIVX
pmt->SetFormatType(&FORMAT_VideoInf o);
//设置媒体格式
pmt->SetSampleSize(pvi->bmiHeader.
biSizeImage);//设置媒体采样包大小
2.组播传输的实现
Windows环境下组播通信是基于WindowsSocket的。Socket(套接字)是一种基于TCP/IP的网络编程接口,采用客户/服务器通信模式,客户端和服务器端通过Socket接口在网络上实现连接和数据交换。Socket提供了一系列系统调用,使用户可以方便地使用TCP和UDP等网络协议实现通信。Winsock定义并记录了如何使用API函数与TCP/IP连接。应用程序通过调用Winsock的API函数实现相互之间的通信,Winsock又利用下层的网络通信协议和操作系统调用实现实际的通信工作。应用程序与Winsock之间的关系如图2所示。

Socket是网络编程中的一个重要的概念,由通信双方的1组IP地址和应用程序的端口号组成。通过IP地址可以唯一地确定网络上的1台主机,而通过端口号又可以唯一确定该主机上的1个应用进程,这样通过Socket就可以在网络中唯一确定通信双方的进程,进而
可以唯一确定网络中的1条通道。
WindowsSocket为IP组播的实现提供2种不同的方法:Winsock1与Winsock2。在本系统中实现了基于Winsock2的组播通信编程。IP组播实现的流程如图3所示。
  结束语:实验证明,利用过滤器开发技术可以方便高效地实现视频数据的传输,很好地解决视频监控系统通用性差、可扩展性不强的问题。笔者在研究开发银行安全视频监控系统中,利用过滤器开发技术实现了远程监控系统中网络通信模块的开发,应用效果良好。 本文链接:http://www.qk112.com/lwfw/jsjlw/txlw/261511.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学