基于MFC的实时视频监控设计研究

2015-07-29 07:47王育军
现代商贸工业 2015年14期
关键词:流媒体视频监控

王育军

摘 要:随着多媒体技术和网络技术的发展,实时视频监控已经广泛应用。采用Microsoft公司提供的较为成熟的MFC框架编程,提出了视频监控系统的流媒体转发服务器的设计方案,采用C/C++语言实现功能,调用MFC中的函数提取摄像数据,实现监控系统的功能需求,设计了系统总体软件方案,实现一个简单的具有取视频流,用户优先级认证,以及组播传输功能的流媒体转发服务器解决方案。

关键词:流媒体;MFC;视频监控

中图分类号:TB 文献标识码:A 文章编号:1672-3198(2015)14-0225-01

1 流媒体概念

流媒体(Streaming Media)是指视频、语言和数据通过实时传输协议以连续流方式顺序,从源端向目的地传输,目的地只需接收到一定数据缓存后就可以立即播放的多媒体应用。流媒体服务器是流媒体技术的一种实现,其基于流媒体技术应用的系统主要由视频与声音数据信息采集、数据信息的编码/解码、文件服务器、流媒体服务器、视频实时传输网络等多个部分组成。

流媒体基础的数据信息来源于监控现场的实时采集、本地的存储和文件服务器。根据监控系统的应用领域的不同、规模的不同和解决问题的着重点不同,可以归纳有以下几种服务器架构:

(1)基于PC的服务器:采用PC机作为服务器,服务于小型用户。此种服务器构架存在一些问题,在网络方面,是网络传输和传输的吞吐率;而软件方面较简单,采用基本的流调度处理和传输质量的保证。

(2)专用硬件平台的服务器:采用专用的硬件服务器,性能优越而且功能强大,面向多用户服务对象。该类服务器对硬件的性能要求高,拥有专业的处理视频的数字视频引擎,是多用户点播服务器的发展趋势。

(3)分布式结构的服务器:流媒体服务器采用分布式的思想将功能分布到网络中对单个服务器的性能要求不是很高,解决了单一服务器设计上的很多瓶颈。

2 系统模型

实时视频监控的转发的主要核心设备流媒体转发服务器,是负责实时视频数据信息编码封装,进而通过实时传输技术发送到用户接收设备;同时,流媒体转发服务器的硬件设备需要专业的处理芯片、存储空间以及足够的网络带宽,通过上述设备来完成视频数据的实时传输。最后就是用户终端,在被许可的情况下,用户可以在本地客户端与远程客户端运行特定的应用程序或者通用浏览器,通过Internet查看监控现场的实时情况及存取在媒体服务器上的音乐、影片等多媒体资源。

系统设计主要应用VC++和OpenCV软件完成,通过设计C++语言程序实现各种功能。控制程序设计部分大体分为视频采集和保存、视频图像处理、运动目标检测、运动目标跟踪。视频采集是使用摄像头调取画面的过程,是整个视觉跟踪系统设计中基础部分。通过cvCaputureFromCAM函数启动网络摄像头,然后抓取第一帧图像显示到窗口中;再经过for循环语句,抓取下一帧图像显示到创建的窗口。抓取前后两帧图像的时间差在20ms左右。这样就可以连续不断地获得视频图像,进而实现视频采集的效果。图像处理在这里分为图像类型转换,图像二值化和滤波。使用背景差分法检测运动物体,所以需要将摄像头采集的彩色图像转换成灰度图像,使用的函数是cvCvtColor(pFrame,pFrImg,CV_BGR2GRAY)。将差分图像二值化的目的是容易在背景图像中提取出前景图像,根据需求分析。

3 MFC结构及设计

3.1 MFC主要构成

MFC是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,Win API与C++的结合。MFC本身不是开发程序的应用语言,是软件编程的规范,允许用户使用C、VC++、Java等编程语言对WinDOS下应用程序的开发,提供应用程序的编程语言接口,使开发出来的各种各样的应用程序能在WinDOS下运行。

MFC是微软对API函数的专用C++封装,遵守WinDOS操作系统的内部实现的机制和功能,采用此种方案开发的应用程序,都能工作在WinDOS的消息机制和绘图里,当用户开发Win应用程序,采用专业C++ SDK开发应用程序变得简单,其主要原因是在Win下用采用C++&MFC编制软件,通过MFC是对API的进行封装处理,从而节约和隐藏了大量的编程环节。然而,通过上述的结合对于编程者来说是减少了劳动,减轻了编程的复杂性,但同样也会带来新的问题,这个新的问题就是MFC对类封装中的一定程度的冗余和迂回。

3.2 MFC程序设计流程

程序设计流程中有着四个重要的工具他们分别是:

(1)Visual C++整合开发环境(IDE):可以明显地或隐喻地激活其它工具如AppWizard和ClassWizard;可以设定各种工具、编译并联结程序、激活除错器、激活文字编辑器、浏览类别阶层;

(2)AppWizard:这是一个程序代码产生器。基于application framework的观念,相同类型(或说风格)的MFC程序一定具备相同的程序骨干,每一个project使用AppWizard的机会只有一次;

(3)Resource Editor:这是一个总合资源编辑器, RC档内的各种资源它统统都有办法处理。Resource Editor做出来的各类资源与你的程序代码之间如何维系关系,这就要靠ClassWizard;

(4)ClassWizard:AppWizard制作出来的程序骨干是不能够修改的,接下来最重要的工作是加上自己的成员变量并改写虚拟函式,或搭起消息与程序代码之间的联系,建立Message Map;以一般文字编辑器直接修改程序代码当然也可以。

3.3 视频流捕获实现

首先建立一个MFC AppWizard[exe]框架工程,命名为Streamingserver。自动生成框架所需的头文件和框架CPP文件,本设计中捕捉显示函数名为OnCamera。采用Preview模式显示。通过实现函数OnCamera(),达到获取视频流的目的,有了本机的视频流源就使视频流能够源源不断的进行读入和相关编码操作。

4 系统测试环境

对于实时视频监控系统测试需要说明,系统既能进行局域网内监控也能很好地进行广域网监控,需要两套设备,配有多个摄像头,同时还需要多台PC机,测试所需设备如表1所示。

根据实时视频流媒体转发服务器系统的功能需求,结合研究的硬件设备,给出监控基本功能测试,测试内容包括实时视频监控功能测试、系统编码配置调节测试。

5 结束语

为了达到测试监控系统的目标,构建了测试环境和网络拓扑结构,从系统的基本功能和稳定性两个方面说明该系统的整体性能。以实时视频流媒体监控的测试为主,对流媒体转发服务器的功能和稳定性进行了测试。首先结束测试准备工作,准备系统测试的设备、设计测试方案与构建环境,最后对测试结果进行了分析。

参考文献

[1]高旭,沈苏彬,顾冠群.网络多媒体传输协议浅析[J].计算机应用研究,2000,15(2):6-8.

[2]孙学康,石方文,劉勇.多媒体通信技术[M].北京:邮电大学出版社,2006:187.

[3]蔡安妮.多媒体通信技术基础[M].北京:电子工业出版社,2008:205-206.

[4]Microsoft公司.Microsoft Visual C++ 6.0 MFC Library Reference类库参考手册[M].希望图书创作室译.北京希望电脑公司,1999.

[5]任哲等.MFC Windows应用程序设计(第2版)[M].北京:清华大学出版社,2007,(9).

[6]候俊杰.深入浅出MFC[M].松岗(UNALIS)发行公司,1998.

猜你喜欢
流媒体视频监控
流媒体传输加密技术研究
基于视频图像采集移动目标检测系统的设计
数字化监控系统的企业应用
基于嵌入式Linux的视频监控系统的设计与实现
基于HTML5的视频监控微课设计浅析
智能视频检索技术在校园安防建设中的发展应用
基于JSP的流媒体播放的设计与实现
网络远程教学系统的设计
基于云服务的P2P流媒体技术在远程教学视频传输中的应用
基于RTMFP协议的视频监控系统设计与实现