基于directshow技术的视频监控系统的设计与实现的人工影响天气作业中,由于开展作业量增加、作业范围扩大造成的事故轻则损坏高炮,重则造成人员伤亡,给人民生命财产造成很大损失,在社会上造成了一些不良影响。主要问题有:炮手操作不规范,特别在处理高炮卡弹故障时,有使用洗把杆捅弹等不安全行为;作业完成后是否对高炮检查和维护;炮弹的丢失误用和被盗以及炮弹的管理问题等[1][2]。因此,需要有专门的视频监控系统来对此进行监控。
本文利用V C++编程,结合DirectShow技术,开发了具有代码量少、通用性强、实时性好的特点的数字视频监控系统。对作业炮点进行实时监控,尽可能地防范和避免以上这些问题的发生。本文针对户外作业视频监测需要适应恶劣的现场环境,同时具有实时性强、监测需求多样性等特点,开发了利用DirectShow技术构建远程视频监控系统。此视频监控系统也为后续的基于视频或图像的监测与分析提供了统一的、可扩展的和易维护的实时视频数据平台。
2实现原理DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与D i r e c t X开发包一起发布。
1引言近年来,视频监控技术得到了迅速的发展。除了档案室、文件室、金库、博物馆等重要部门的监视和报警,在公共场所进行安全监控和在其他经济和生活领域进行管理和控制也必不可少。在气象领域DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow可以很方便地从支持W D M驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。利用DirectShow支持多线程的特点,用一个线程实现数据的采集与回放,另一个线程进行图像处理,从而达到视频监控的目的[3]。
DirectShow是基于模块化,每个功能模块都采取COM组件方式,称为Filter,在DirectShow中只要拥有相应的分析和解码Filter就可以支持任何多媒体的格式。
DirectShow提供了一系列的标准的模块可用于应用开发,开发者也可以开发自己的功能Filter来扩展DirectShow的应用。
DirectShow的体系结构中主要有三大类功摘要通过Visual C++6.0提供的DirectShow技术实现了一个用于人工影响天气炮点安全监控的视频监控系统。可以实现视频回放、录像监控多种功能。经过测试通过该技术实现的监控系统实时性、扩展性很好。
关键词Visual C++6.0;DirectShow;人工影响天气;视频监控AbstractAmonitoringsystemfor artificialinfluenceonweatherwasimplementedinthispaper,usingDirectShowframeworkunderVisualC++6.0,whichcanrealizevideo-playback,monitorthevideorecordintandsoon.Bytest,itmakesagoodreal-timetransmissionperformanceandexpandability.
Key wordsVisualC++6.0;DirectShow;artificialinfluenceonweather;videomonitoring能:多媒体数据的采集功能、格式转换传输功能以及显示存储功能,这三大功能DirectShow分别提供了Filter:SourceFilters、Transform Filters和RenderingFilters来支持。如图1所示。
SourceFilters主要负责取得媒体数据,数据源可以是文件、计算机里的采集卡、数字摄像机等,然后将数据往下传输;TransformFitlers主要负责数据的格式转换和传输(如编码与解码);Rendering Filtes主要负责数据的最终展现,可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。DirectShow提供了大量基础的Filter,同时DirectShow还允许用户可以根据一定的接口和数据规则来定制符合自己实际应用需求的Filter。各个Filter在Filter Graph中按一定的顺序连接成一条“流水线”进行协同工作。
3系统设计与实现3.1硬件系统系统的硬件部分主要任务是将模拟视频图像转换成适合于计算机处理的数字视频信号。可以根据系统要求选择不同的配置。本视频监控系统主要的硬件构成包括:服务器、计算机、摄像机、视频采集卡和云台解码器等。如图2所示:
由于高炮发射地点通常在远离人群集中地的郊外,离控制中心距离较远,所以需要通过网络来实现远程控制。本文采用了具有较高稳定性和可靠性的嵌入式视频采集设备。这些设备可以通过网络将M P E G 4视频流数据传输到处理终端来,基于DirectShow的后续软件模块就可以收到这些数据并进行显示和传输等处理。最后这些数据将保存在数据服务器中,以便查询。同时,这些数据还可以作为人工影响天气管理信息系统的原始数据。
3.2软件系统该监控系统由炮点终端和处理终端两部分组成,可以实现现场实时视频数据的传输。因为这些数据对实时性要求较高,但对数据准确率要求较低,本系统采用了U D P协议,该协议可以在网络空闲的时候高速度传输,而在网络繁忙时低速度传输,并且通过改变图像的格式来适应网络的环境。
3.2.1视频采集模块若需要进行视频采集,则必须先构建一个过滤器图表[4][5]。本文通过三个过滤器来实现:Video Capture Filter、SmartTee Filter以及Video Venderer,如图3所示。
依次构造每个Filter,将每个Filter的Pin按序相连即可完成图表的构造,然后我们通过应用程序向图表发送命令(通过图表管理器完成)来控制整个视频采集的流程。在构造Video Capture Filter前,必须列举出系统的所有采集设备,然后才能根据列举的设备名称创建Video CaptureFilter。根据枚举出来的设备友好名称(FriendlyName)创建Video CaptureFilter。DirectX较高版本中一般都提供了一个ICaptureGraphBuilder2接口,可以通过它方便地创建视频采集过滤器图表,然后再将它添加到IGraphBuilder图表管理器中,创建剩余的Smart Tee和VideoRenderer Filter并连接成完整的图表,这样,一个完整的视频采集图表管理器就构造完成了。通过用户命令接口,可以方便地完成开始,暂停,停止视频采集。
相关热词:基于 directshow 技术 视频 监控 系统 设计