内容摘要:许多关于视频的软件(如视频会议、可视电话等)开发都应用于视频捕获技术。微软为软件开发人员提供了一个专门用于视频捕获的VFW SDK,从而为在Windows系统中实现视频捕获提供了标准的接口,并大大降低了程序的开发难度。由于VFW SDK只有VC和VB版,没有Delphi版,因此需要在Delphi中一一声明DLL中的各个函数和变量。文中详细介绍了如何利用VFW在Delphi中开发视频捕获程序的步骤,同时给出了程序实例。
*将视频流和音频流捕获到一个AVI文件中;
*动态地同视频和音频输入器件连接或断开;
*以Overlay或Preview模式对输入的视频流进行实时显示;
*在捕获时,可指定所用的文件名,并可将捕获文件的内容拷贝到另一个文件;
*设置捕获速率;
*显示控制视频源、视频格式及视频压缩的对话框;
*创建、保存或载入调色板;
*将图像和相关的调色板拷贝到剪贴板;
*将捕获的单帧图像保存到DIB格式文件。
(2)关联捕获窗和驱动程序
单独定义的捕获窗是不能工作的,它须与一个设备相关联才能取得视频信号。用函数CapDriver Connect可使捕获窗与其设备驱动程序相关联。
(3)设置视频设备的属性
通过设置TcaptureParms结构变量的各个成员变量,可以控制设备的采样频率、中断采样按键、状态行为。设置好TcaptureParms结构变量后,可以用函CapCaptureSetSetup使设置生效。之后还可以用CapPreviewScale、CapPreviewRate设置预览的比例与速度,也可以直接使用设备的默认值。
(4)打开预览
利用函数CapOverlay可选择是否采用叠加模式预览,以使系统资源占用小,视频显示速度加快。然后用CapPreview启动预览功能,这时就可以在屏幕上看到来自摄像机的图像了。
通过以上四步就可以建立一个基本的视频捕获程序,但如果想自己处理从设备捕获到的视频数据,则要使用捕获窗回调函数来处理,比如一帧一帧地获得视频数据或以流的方式获得视频数据等。
3 基于Delphi的视频捕获程序
根据系统对系统访问、处理速度等方面的特殊需求,笔者选用Delphi作为开发工具。下面以开发一个逐帧从视频设备上捕获视频数据的程序为例,来说明每个函数的作用以及开发的具体过程。所给例程的功能是可以在屏幕上显示捕获到的视频,并可以获得每一帧的图像数据。具体步骤如下:
责编:豆豆技术应用
- Delphi新闻
- Delphi教程
- Delphi 7.0
- Delphi 2007
- Delphi控件
- Delphi网络编程
- Delphi for php
- Delphi界面/视图
- Delphi系统控制
- Delphi数据库
- Delphi源码下载