在一些银行、大型商场、办公楼、升降电梯中,为了保障公有财产、商品、办公设备、资料、人身
等的安全,都设有监控系统。在出现问题时,用户可以通过监控系统查找原因。下面的几个实例分别实现
了摄像头监控与定时监控的功能。
实例 425 简易视频程序
实例说明
利用普通的简易摄像头,通过 C#语言即可开发成简易视频程序。本实例利用市场上购买的普通摄像
头,利用 VFW 技术,实现单路视频监控系统。运行程序,窗体中将显示舰体摄像头采集的视频信息。如
图 13.9 所示。
技术要点
本实例主要使用了 VFW(Video for Windows)技术。VFW 是 Microsoft 公司为开发 Windows
平台下的视频应用程序提供的软件工具包,提供了一系列应用程序编程接口(API),用户可以通过这些
接口很 方便地实现视频捕获、视频编辑及视频播放等通用功能,还可利用回调函数开发比较复杂的视频
应用程序。该技术的特点是播放视频时不需要专用的硬件设备,而且 应用灵活,可以满足视频应用程序
开发的需要。Windows 操作系统自身就携带了 VFW 技术,系统安装时,会自动安装 VFW 的相关组件。
VFW 技术主要由六个功能模块组成,下面进行简单说明。
l AVICAP32.DLL:包含执行视频捕获的函数,给 AVI 文件的 I/O 处理和视频,音频设备驱动程序提供
一个高级接口。
l MSVIDEO.DLL:包含一套特殊的 DrawDib 函数,用来处理程序上的视频操作。
l MCIAVI.DRV:包括对 VFW 的 MCI 命令解释器的驱动程序。
l AVIFILE.DLL:包含由标准多媒体 I/O(mmio)函数提供的更高级的命令,用来访问.AVI 文件。
l ICM:压缩管理器,用于管理的视频压缩/解压缩的编译码器。
l ACM:音频压缩管理器,提供与 ICM 相似的服务,适用于波形音频。
其中 13.4 节所有的实例主要使用 AVICAP32.DLL 中的函数和 USER32.DLL 中的函数,函数语法及
结构如下。
(1)capCreateCaptureWindow 函数
该函数用于创建一个视频捕捉窗口。语法如下:
[DllImport("avicap32.dll")]
public static extern IntPtr capCreateCaptureWindowA(byte[] lpszWindowName, int
dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, int nID);
参数说明如下。
l lpszWindowName:标识窗口的名称。
l dwStyle:标识窗口风格。
l x、y:标识窗口的左上角坐标。
l nWidth、nHeight:标识窗口的宽度和高度。