内容摘要:许多关于视频的软件(如视频会议、可视电话等)开发都应用于视频捕获技术。微软为软件开发人员提供了一个专门用于视频捕获的VFW SDK,从而为在Windows系统中实现视频捕获提供了标准的接口,并大大降低了程序的开发难度。由于VFW SDK只有VC和VB版,没有Delphi版,因此需要在Delphi中一一声明DLL中的各个函数和变量。文中详细介绍了如何利用VFW在Delphi中开发视频捕获程序的步骤,同时给出了程序实例。
表1 VFW功能模块
模 块 功 能
AVICAP.DLL 包含执行视频捕获的函数,它给AVI文件的I/O处理和视频、音频设备驱动程序提供一个高级接口
MSVIDEO.DLL 包含一套特殊的DrawDib函数,用来处理屏幕上的视频操作
MCIAVI.DRV 包括对VFW的MCI命令解释器的驱动程序
AVIFILE.DLL 包含由标准多媒体I/O(mmio)函数提供的更高的命令,用来访问.AVI文件
ICM 压缩管理器,用于管理的视频压缩/解压缩的编译码器(Codec)
ACM 音频压缩管理器,提供与ICM相似的服务,适用于波形音频
2 视频捕获程序开发的基本步骤
2.1 使用AVICap窗口类
笔者使用的是AVICap窗口类来开发视频捕获程序。AVICap类支持实时视频流捕获和单帧捕获,并提供对视频源的控制。通常使用的MCI控件虽然也提供了数字视频服务。并为视频叠加提供了Overlay命令集等,但这些命令主要是基于文件的操作,还不能满足实时地从视频缓存中提取数据的要求。对于使用没有视频叠加能力的捕获卡的PC机来说,用MCI提供的命令集是无法捕获视频流的。而AVICap窗口类在捕获视频方面具有一定的优势,它能直接访问视频缓冲区,而不需要生成中间文件,因而实时性很强,效率也很高。另外,它还可将数字视频捕获到一个文件中。
2.2 开发的基本步骤
开发视频捕获程序主要有以下四个步骤:
(1)创建“捕获窗”。
在进行视频捕获之前必需要先创建一个“捕获窗”,并应以此为基础进行所有的捕获及设置操作。“捕获窗”可用AVICap窗口类的“Cap Create Capture Window”函数来创建,其窗口风格可设置为WSCHILD和WS_VISIBLE参数。
“捕获窗”类似于标准控件,它具有下列功能:
责编:豆豆技术应用
- Delphi新闻
- Delphi教程
- Delphi 7.0
- Delphi 2007
- Delphi控件
- Delphi网络编程
- Delphi for php
- Delphi界面/视图
- Delphi系统控制
- Delphi数据库
- Delphi源码下载