基于DirectShow的远程视频监控系统的设计与实现

来源 :硅谷 | 被引量 : 0次 | 上传用户:hufei1984
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]随着第三代监控系统的成熟,利用视频流技术的实时远程视频监控系统也应运而生。直接使用解压缩算法支持实时播放通用性和移植性差。
  [关键词]DirectShow 远程监控 MPEG-4 过滤器
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220123-02
  
  一、引言
  
  数字视频压缩编码技术日益成熟,多媒体计算机性能不断提高,网络带宽逐步增大,以网络为依托的第三代监控系统[1]已日趋成熟。利用视频流技术实现远程实时监控的视频监控系统也应运而生。直接使用解压算法对视频流实时解压预览,做到边下边看,这种方法效率高,支持实时播放但算法复杂,缺少通用性,软件可移植性较差。DirectShow是微软公司设计的多媒体开发工具,简化多媒体应用程序的开发,使开发者不必考虑复杂的流数据格式和不同的终端设备,以及数据同步的问题。给多媒体程序开发员提供了标准的、统一的、高效的API接口,具有较好的通用性和可移植性。
  
  二、实现原理
  
  DirectShow是基于模块化,每个功能模块都采取COM组件方式,称Filter,在DirectShow中只要拥有相应的分析和解码Filter就可以支持任何多媒体的格式。DirectShow分别提供了Source Filters、Transform Filters
  和Rendering Filters来支持多媒体数据的采集功能、格式转换传输功能以及显示存储功能这三大功能[2]。DirectShow对数据的处理实际上就是把不同功能的过滤器连接起来,依次对数据进行相应的处理,然后再传递给下一级的过滤器,其体系结构如图1所示。
  Source Filters主要负责取得媒体数据,它从外部设备获取原始数据并作简单处理,再将数据往下一级过滤器送。数据源可以是文件、Internet数据流、视频采集卡等。Transform Filters主要负责数据的格式转换和传输(如编码与解码);Rendering Filters主要负责数据的最终展现,可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。
  Filter Graph Manager负责应用程序与Filter之间的通信与交互。过滤器与过滤器的连接点称为针(pin),是一个由过滤器生成的CMO对象,支持接口IPin。针负责与其他针相连并提供传送数据的接口,针有方向性,或者输入或者输出。
  
  
  三、远程视频监控系统的设计与实现[3]
  
  整个视频监控系统有2部分组成:远程监控端和客户端。远程监控端实时采集图像,客户端通过网络实现对远程监控点的控制。整个系统的结构图如图2所示。
  


  从图2可以看出,网络的左边为远程监控端主要负责视频数据的采集,采集以后的视频数据先进行压缩编码,然后再传到客户端;网络用来负责传输视频数据;客户端则主要负责对摄像头点的运转方向进行控制,完成视频数据的接收,解码和显示。接收数据先存储在公用缓冲区中,视频显示模块读取缓冲区中的视频数据并通过解码后显示实时的录像。
  (一)视频采集模块
  远程监控端能在本地预览采集的视频信息并将采集的信息通过网络发送到客户端,过滤器的连接如图3所示。在远程监控端,视频数据的采集设备使用的是WDM驱动模型的摄像头,在应用程序中,用DirectShow提供的一个专门的系统枚举组件CLSID_SystemDeviceEnum,得到采集设备的标识,并将设备标识绑定成一个过滤器就可以了。
  
  得到采集设备过滤器后,接下来是要获得压缩过滤器。DirectShow已将PC中已有的编码器封装成编码过滤器。一台安装多个播放软件的PC机有许多编码器,每一个编码器在生成的时候都有自己唯一的GU ID,可以根据ID来创建编码过滤器。在应用程序中使用CoCreateInstance(CLSID_ffdshowcodec,
  NULL,CLSCTX_INPROC_SERVER,IID_IBaseFilter,(void**)&pffdCodec),将ffdshow编码器绑定成过滤器,指针为pffdCodec。然后使用m_pGraph->AddFilter(p-ffdCodec,"ffdCodec-Filte")将该编码过滤器加入到FilterGraph中参与工作。Smart Tree过滤器有一个输入引脚和两个输出引脚,输入引脚连接上层的MPEG Video Encoder过滤器,输出引脚分别连接了Video rende过滤器和video t-ransmit过滤器,分别实现对远程监控端视频的预览和传输。这样视频采集模块即远程监控端的过滤器结构就搭建好了。
  (二)视频传输模块
  考虑到网络数据量的问题,视频传输采用单向传输,即远程终端向处理终端传输,由远程端接收现场的采集图像数据。基于IP网络的视频发送模块和接收模块在DirectShow中没有现成可用的Filter,因此需要自己设计和开发。视频发送模块(Video Sender Filter)主要接收视频采集模块的视频数据,并通过网络发送出去。Video Sender Filter的实现主要是通过CbaseFilter( )基类和 Cpin( )基类继承实现的,其输入引脚的媒体类型需要自己定义,其定义如下:
  CInputPin:: GetMediaType (IN int iPos,OUT CMediaType*p)
  {
  ASSERT(mt) :
  if (iPos = = 0)
  {
  p - > InitMediaType ():
  p ->SetType (&MEDIA_TYPE_VIDEO) :
  p -> SetSubtype ( &TIME_FORMAT_NONE):
  return p_OK :
  }
  return VFW_S_NO_MORE_ ITEMS :
  }
  其中SetType函数决定引脚输入的是视频数据,SetSubtype函数决定视频数据的辅助类型,TIME_FORMAT_NONE表示任何编码方式的视频数据均可通过,当然也包括系统中MPEG4格式的编码数据[5,6]。通过重载接口的Receive( )方法来获取视频数据,再通过内部建立的网络连接将视频数据发送到网络的另一端;视频接收模块(Video ReceiverFilter)主要接收由网络发送来的视频数据,并将接收到的视频数据传递给下层Filter(如视频显示模块)。Video ReceiverFilter的实现也是通过重载CbaseFilter( )和CbaseOutputPin( )接口,在接收到网络视频数据时通过调用接口的Deliver
  ( )方法将视频数据“PUSH”向下层Filter。
  (三)视频数据显示模块
  基于DirectShow的视频接收端软件系统流程图如4,由Source Filter,Mpeg Video Decoder和Video Renderer顺序连接构成过滤器图。其中Source Filter负责从IP网络中接收数据包,然后将接收到的数据送到下一个过滤器Mpeg Video Decoder进行解压,最后解压后的视频数据流Video Renderer送给显卡。
  


  客户端中接收网络中的视频数据是通过NetReceiver( )过滤器来完成。NetReceiver( )接收到网络中来的视频数据,然后传递给客户端PC机中的解码器。同样地,DirectShow将它包装成解码过滤器。解码过滤器要与编码过滤器对应,来解码MPEG4格式的视频数据。需要对接收过滤器的输出引脚的媒体类型进行设置即使输出引脚的媒体类型和解码过滤器的媒体类型一致,否则收过滤器的输出引脚与解码过滤器的输入引脚能够不能连接,设置在输出引脚的GetMediaType( )中进行设置。
  
  四、系统测试和结束语
  
  在局域网环境下,利用奔四2.4G计算机对本系统测试。测试结果表明,该系统丢包率为1.3%,网络延时1.0秒左右。系统具有较为流畅的传输性能,实时传输时画面抖动不是很明显,能够较好完成视频监控的目的。但是系统的功能还有待加强完善,带宽的占用率也要进一步的降低。
  
  参考文献:
  [1]王晓玲、王猛,基于Web的视频监控系统设计[J].计算机工程与应用,2004(7):221223.
  [2]王海彬、范春年,基于directshow技术的视频监控系统的设计与实现[J].中国科技信息,2008(2):106-107.
  [3]陆其明,DirectShow实务精选[M].北京:科学出版社,2004.
  [4]周慧,杨杰.基于DirectShow框架的视频监控系统[J].武汉理工大学学报:信息与管理工程版,2007.29(5):40-42.
  
  作者简介:
  黄晶晓,男,硕士研究生,主要研究方向:计算机网络与信息系统。
其他文献
[摘要]简要介绍Cookie特性及应用现状。重点讨论Cooke的安全性问题,提出集中防范Cookie泄密的安全措施。  [关键词]Cookie 信息安全 服务器  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220078-01    几乎所有的网站设计者都使用了Cookie技术。有些网站和机构滥用Cookie,未经访问者的许可就搜集用户的个人资料,以谋求商业利益。
期刊
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220014-01    一、用USB接口捕获DV视频的背景    二十一世纪的今天,家庭用的DV机(数码摄像机)已经非常普及,一般的DV所使用的存贮介质是磁带,也有一些DV同时配有存贮卡,但这种存贮卡一般是留作存贮图片的(针对同时具有摄像和照相功能的DV),单纯用存贮卡作为视频存贮的DV机目前价格较高,大众接受及使用率
期刊
[摘要]以开发教学质量评估系统为背景,重点阐述关联规则中的Apriori算法在评估系统中的运用,并以实例说明。  [关键词]评估系统 Apriori算法 关联规则  中图分类号:TP3文献标识码:A 文章编号:1671-7597(2008)1220076-01    一、引言    高校教学质量评价系统的建立其目的不是简简单单地给教师一个评价等级,而是根据评价结果向教师传达重要的教学信息,帮助他们
期刊
[摘要]基于ASP.NET平台的网站和应用越来越广泛,用户对网站的访问速度的要求也越来越高。网站的访问速度取决于很多因素,主要从网站的系统架构和性能优化两方面入手,结合实际经验,提出一些最佳技术实践和解决方案。  [关键词]ASP.NET 网站架构 性能优化  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220069-01    随着互联网的发展,新技术层出不穷,
期刊
[摘要]虚拟用户交换机(Centrex)拥有用户专用交换机(PBX)的部分功能,在小型公司、企业、酒店、宾馆得到了广泛的应用,从中大型星级酒店的通信需求和通信安全出发,从四大方面描述Centren与PBX星级酒店组网时各自的优劣之处,以期达到了解两者适用条件的目的。  [关键词]Centrex PBX 星级酒店  中图分类号:TN91 文献标识码:A 文章编号:1671-7597(2008)122
期刊
[摘要]绩效考评系统根据银行历史情况,根据一定的标准,为相决策者在做出某种决策时提供决策分析,变“事后控制”为事前控制。对商业银行绩效考评系统应该解决的问题以及所应遵循的设计原则进行分析,并对该系统进行设计。  [关键词]绩效考评 设计 功能模块  中图分类号:F83 文献标识码:A 文章编号:1671-7597(2008)1220119-02    目前,中国存在许多家银行,银行间竞争激烈。银行
期刊
[摘要]根据对我国农村建筑物样本的调查结果,总结农村房屋的抗震特征,分析建筑物的建造年代、结构类型、抗震处理。提出提高农村房屋抗震能力的对策和建议。  [关键词]农村房屋 抗震特征 抗震对策  中图分类号:P5 文献标识码:A 文章编号:1671-7597(2008)1220089-02    一、前言    2008年5月12日14时28分,在四川汶川县发生M8.0级地震,造成69181人遇难,
期刊
[摘要]H.264是目前最新的视频编解码标准,研究运动估计基本原理和研究状况的基础上,对X264编码器的三种运动估计算法进行分析和比较,实验结果表明可以在保证图像质量的情况下,提高编码速度,有效压缩视频。  [关键词]H.264 视频编码 运动估计 X264  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220108-01    一、运动估计基本原理和研究现状  
期刊
[摘要]提出多媒体教学软件的框架模型,论述基于Authorware的多媒体教学软件的设计过程。并以EC实例给出教学系统结构、教学内容文件网络结构、软件详细设计及教学测试系统框架、功能。  [关键词]CAI Authoware技术 多媒体 软件设计  中图分类号:TP3文献标识码:A 文章编号:1671-7597(2008)1210069-02067-02    一、引言    随着计算机技术的飞速
期刊
[摘要]论述淬火炉上料机械手动作流程及其液压系统工作原理,结合机械手动作流程,设计PLC控制系统的输入输出图和自动程序控制梯形图。  [关键词]淬火炉上料机械手 液压系统 PLC控制系统  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)1220116-02    一、引言    机械手是模仿人的手部动作,按给定程序、轨迹、和要求实现自动抓取、搬运和操作的自动装置,实现
期刊