WEB开发网
开发学院软件开发VC VC++实现视频捕获编程 阅读

VC++实现视频捕获编程

 2010-07-20 20:45:00 来源:WEB开发网   
核心提示:三、AVICap编程示例下面以一个简单的应用程序为例说明AVICap的使用,该程序对输入的视频流进行实时的显示和捕获,VC++实现视频捕获编程(4),演示需要一个视频捕获卡和摄像头,界面中的菜单项如图1所示,由于篇幅有限,下面仅介绍与视频捕获相关的编程,其中,菜单项Display可以以Preview或Overlay模式

三、AVICap编程示例

下面以一个简单的应用程序为例说明AVICap的使用,该程序对输入的视频流进行实时的显示和捕获,演示需要一个视频捕获卡和摄像头。界面中的菜单项如图1所示。其中,菜单项Display可以以Preview或Overlay模式显示图像;菜单项Setting可通过弹出AVICap提供的对话框VideoSource、VideoFormat和VideoDisplay来对捕获进行设置,图4中的图像就是按照图2、图3的对话框所示进行设置、以Preview模式显示的结果;菜单项Capture可将视频流或单帧图像捕获到指定的文件中去。

由于篇幅有限,下面仅介绍与视频捕获相关的编程。

1、定义全局变量:

HWNDghWndCap;//捕获窗的句柄

CAPDRIVERCAPSgCapDriverCaps;//视频驱动器的能力

CAPSTATUSgCapStatus;//捕获窗的状态

2、处理WM_CREATE消息:

//创建捕获窗,其中hWnd为主窗口句柄

ghWndCap=capCreateCaptureWindow((LPSTR)"CaptureWindow",WS_CHILD|WS_VISIBLE,0,0,300,240,(HWND)hWnd,(int)0);

//登记三个回调函数,它们应被提前申明

capSetCallbackOnError(ghWndCap,(FARPROC)ErrorCallbackProc);capSetCallbackOnStatus(ghWndCap,(FARPROC)StatusCallbackProc);capSetCallbackOnFrame(ghWndCap,(FARPROC)FrameCallbackProc);

capDriverConnect(ghWndCap,0);//将捕获窗同驱动器连接

//获得驱动器的能力,相关的信息放在结构变量gCapDriverCaps中

capDriverGetCaps(ghWndCap,&gCapDriverCaps,sizeof(CAPDRIVERCAPS));

3、处理WM_CLOSE消息:

//取消所登记的三个回调函数

capSetCallbackOnStatus(ghWndCap,NULL);

capSetCallbackOnError(ghWndCap,NULL);

capSetCallbackOnFrame(ghWndCap,NULL);

capCaptureAbort(ghWndCap);//停止捕获

capDriverDisconnect(ghWndCap);//将捕获窗同驱动器断开

4、处理菜单项Preview:

capPreviewRate(ghWndCap,66);//设置Preview模式的显示速率

capPreview(ghWndCap,TRUE);//启动Preview模式

5、处理菜单项Overlay:

if(gCapDriverCaps.fHasOverlay)//检查驱动器是否有叠加能力

capOverlay(ghWndCap,TRUE);//启动Overlay模式

6、处理菜单项Exit:

SendMessage(hWnd,WM_CLOSE,wParam,lParam);

上一页  1 2 3 4 5  下一页

Tags:VC 实现 视频

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接