[摘要]VFW是VideoforWindows的简称,是微软公司为视频软件开发人员专门推出的关于数字视频的软件包来对视频处理进行支持。VFW提供的接口可以支持大多数的视频采集卡,所以为视频捕捉提供了标准的接口,从而大大降低了视频软件在Windows下的开发难度。现在我们就来掌握下如何利用VFW技术外加简易摄像头实现一个简单的单路视频监控系统,实例涉及到的摄像头既可为市场上出售的普通摄像头,也可为电脑笔记本自带摄像头。
VFW是VideoforWindows的简称,是微软公司为视频
软件开发人员专门推出的关于数字视频的软件包来对视频处理进行支持。VFW提供的接口可以支持大多数的视频采集卡,所以为视频捕捉提供了标准的接口,从而大大降低了视频软件在Windows下的开发难度。现在我们就来掌握下如何利用VFW技术外加简易摄像头实现一个简单的单路视频监控系统,实例涉及到的摄像头既可为市场上出售的普通摄像头,也可为电脑笔记本自带摄像头。
视频捕捉与实时处理技术是目前视频处理系统中难点技术之一,能否准确捕捉指定的视频图像,进而实现精确地数据分析与处理,关系到整个视频系统的成败。显然,这个
系统的重要之处是实时捕捉视频图像。为此,采用VFW技术,它能使应用程序通过数字化设备从传统的模拟视频源得到数字化的视频剪辑。VFW的一个重要思想是播放时不需要专用硬件。为了解决数字视频数据量大的
问题,需要对数据进行压缩,而VFW引进了AVI的文件标准。该标准未规定如何对视频进行捕捉、压缩及播放,仅规定视频和音频该如何存储在硬盘上及在AVI文件中交替存储视频帧和与之相匹配的音频数据。但VFW可使程序员通过发送消息或设置属性来捕捉、播放和编辑视频剪辑。
VFW主要由6个模块组成,下面做一下简单的说明:
AVICAP.DLL包含执行视频捕捉的函数,它给AVI文件的I/O处理和视频、音频设备驱动程序提供一个高级接口。
MSVIDEO.DLL包含一套非凡的DrawDib函数,用来处理屏幕上的视频操作。
MCIAVI.DRV包括对VFW的MCI命令解释器的驱动程序。
AVIFILE.DLL包含由标准多媒体I/O(mmio)函数提供的更高的命令,用来访问.AVI文件。
ICM压缩治理器,用于治理的视频
压缩/解压缩的编译码器(Codec)。
ACM音频压缩治理器,提供与ICM相似的服务,适用于波形音频。
接下来让我们了解一下视频捕捉程序开发的过程,视频捕获是指由专用的视频采集卡捕获声频和视频信息,然后将其进行数据化处理,再经过软件的压缩进行处理,这时就可对这些数据进行保存、回放、传输等各种操作。在VFW技术
中,使用AVICap窗口类来开发视频捕捉
程序,AVICap类支持实时视频流捕捉和单帧捕捉,并提供对视频源的控制。AVICap窗口类能直接访问视频缓冲区,而不需要生成中间文件,因而实时性很强,效率也很高。
开发视频捕捉程序主要分以下四个步骤:
(1)创建一个AVICap类的捕捉窗口
在进行视频捕捉之前必需要先创建一个“捕捉窗口”,并应以此为基础进行所有的捕捉及设置操作。“捕捉窗口”可用AVICap窗口类的“CapCreateCaptureWindow”函数来创建,其窗口风格可设置为WSCHILD和WS_VISIBLE参数,例如:
hWndC:=CapCreateCaptureWindowA('MyOwnCaptureWindow',
WS_CHILDorWS_VISIBLE,//窗口样式
Panel1.Left,//X坐标
Panel1.Top,//Y坐标
panel1.Width,//窗口宽
panel1.Height,//窗口高
Form1.Handle,//窗口句柄
0);//一般为0
“捕捉窗口”类似于一个标准组件,其主要功能为:
1.将视频流和音频流数字化,然后存储在硬盘或其他存储介质上,实现录象功能;
2.动态的在一个捕获窗口与一个捕获设备之间连接或断接;
3.以Overlay或Preview模式对输入的视频流进行实时显示;Overlay该模式为部分