基于VFW的视频预览
来源:互联网 发布:热血霸业(神奇网络) 编辑:程序博客网 时间:2024/04/30 01:09
刚完成视频采集(预览)方案,现在有空就先总结一下这方面的技术,我用的是VFW视频采集方案有很多,我之前下载了网上一些;例子看,有DirectShow的,VFW的,OPENCV的,DirectShow是较VFW新,但用起来觉得不好用,所以转去用VFW,VFW感觉用起来比较方便!
以下结合收集资料和我自己的实际应用总结一下:
1.VFW视频采集方案介绍
VFW是Microsoft于1992年推出的数字视频软件包,它不依赖于专用的硬件设备,提供了通用的数字视频开发方案。VFW主要由AVICap.dll、MSVideo.dll、MCIAvi.drv、AVIFile.dll、vfw32.lib等库文件组成,这些库提供了相关视频、音频、AVI文件的函数,本节将介绍如何利用这些函数进行视频采集。
2.使用前的准备
(1)引用vfw.h头文件。
#include "vfw.h"
(2)导入vfw32.lib库文件。
#pragma comment (lib,"vfw32")
步骤2也可以在通过工程选项窗口的连接选项卡进行设置
3.视频窗口的创建
第一步需要创建一个视频预览窗口。在程序中可以使用capCreateCaptureWindow函数来创建视频预览窗口,该函数语法如下:
HWND VFWAPI capCreateCaptureWindow(LPCSTR lpszWindowName, DWORD dwStyle, int x,
int y, int nWidth, int nHeight, HWND hWnd, int nID);
参数说明:
lpszWindowName:表示视频捕捉窗口的名称。
dwStyle:表示视频捕获窗口的风格,一般包含有WS_CHILD 和 WS_VISIBLE风格。
x、y:表示视频捕捉窗口的左上角坐标。
nWidth、nHeight:表示视频捕捉窗口的宽度和高度。
hWnd:表示视频捕捉窗口父窗口的句柄。
nID:表示视频捕捉窗口标识。
4.连接视频设备
使一个捕获窗与一个设备驱动程序相关联。单独定义的一个捕获窗是不能工作的,它必需与一个设备相关联,这样才能取得视频信号
BOOL capDriverConnect(
hwnd,
iIndex
);Parameters
hwnd
Handle to a capture window.
iIndex
Index of the capture driver. The index can range from 0 through 9.
Return Values
Returns TRUE if successful or FALSE if the specified capture driver cannot be connected to the capture window.
Remarks
Connecting a capture driver to a capture window automatically disconnects any previously connected capture driver.
5.设置摄像头参数
capDlgVideoSource(HWND hwnd)
hwnd
Handle to a capture window.
6.设置视频格式
capDlgVideoFormat(HWND hwnd);
7.设置监视频率
capPreviewRate(HWND hwnd,int itimes);
8.开始监视
这里只讲使用
capPreview(hwnd,TRUE); //开始监视
9.结束监视
capCaptureStop(hwnd);
capPreview(hwnd, FALSE);
CWnd* pWnd=CWnd::FromHandle(hwnd);
pWnd->SendMessage(WM_CAP_DRIVER_DISCONNECT,0, 0L);
好,以上是使用得方法,接下来按步骤做就可以做一个视频预览程序:
1.新建一个对话框程序,叫CVideoTestDlg
2.在CVideoTestDlg类中添加成员:
HWND m_hWndVideo; //视频显示窗口
3.画一个Picture控件,属性改为框架,并建立相对应的控件变量 CStatic m_Panel;
4.画一个Button控件(开启),并建立BN_CLICKED消息,在消息处理函数写入
5.同样方法处理“停止监控”Button
6.接着编译、运行,OK!
鉴于实际需要,我并没有做录像功能
如有问题,请回复写下邮箱索取源代码
- 基于VFW的视频预览
- 趁热打铁之---VS2010基于VFW的视频控件编写,实现预览、拍照功能
- 基于VFW的视频应用程序开发
- 基于VFW的视频应用程序开发
- 基于VFW的视频应用程序开发
- 基于VFW的视频应用程序开发
- 基于VFW的视频应用程序开发
- 基于VFW的视频监控系统
- MFC:基于VFW的视频应用程序开发
- 基于Delphi的VFW视频捕获程序的开发
- 基于vfw的摄像头视频浏览和捕获的程序
- 基于Delphi的VFW视频捕获程序的开发
- 基于VFW的摄像头视频捕捉程序(转)
- 基于VFW视频采集及数据处理
- 基于flowplayer的视频缩略图的视频预览
- 基于flowplayer的视频缩略图的视频预览
- 基于flowplayer的视频缩略图的视频预览
- vfw捕捉视频的一个小问题
- 经典感悟,能改变你一生的五句话
- Windows 线程漫谈——界面线程和工作者线程
- C++中的位拷贝和值拷贝
- 数据库对象 字符串连接符||
- 有关Linux下的游戏
- 基于VFW的视频预览
- dbf转换到excel,改数据后---转txt 然后又foxpro导入为dbf格式,但是有点问题!
- GridView中点击一列无刷新弹窗口
- 进程通信方法
- 开心农场外挂破解中。。。
- 系统分析员基本功
- 关于嵌入式Linux的一点疑问
- DirectSound播放音频应用程序开发快速入门
- timeSetEvent的用法(一)