采集设备所具有的能力,可以通过CAPDRIVERVAPS结构中的fHasOverlay域来判断设备是否具备该模式。在Overlay模式下所捕获的视频数据的显示不需要占用系统资源,显示速度快,同时不影响系统的其他任务。该模式所支持的视频采集格式为YUV格式,通过capOverlay宏完成;在Preview模式下显示要占用CPU资源,视频砧由系统调用GDI函数在捕获窗口中显示。Previews模式显示速度慢,所支持的视频采集格式为RGB格式,通过capPreview宏实现。所以一般采用overlay模式显示的图像要比preview流畅;
4.实现动态视频流截图,一帧一帧地获得视频数据。
(2)使捕捉窗口与其设备驱动程序相关联
单独定义的捕捉窗是不能
工作的,它须与一个设备相关联才能取得视频信号,通过如下代码就可以使捕捉窗口与其设备驱动程序相关联:
SendMessage(hWndC,WM_CAP_DRIVER_CONNECT,0,0);
另外使用函数CapDriverConnect也可实现捕捉窗口与其设备驱动程序相关联。例如:
CapDriverConnect(hWndC,0);
(3)基本的捕获设置
基本的捕获设置包括:设置捕获速度(每秒捕获多少帧),是否同时捕获声频,捕获缓冲,允许最大丢失多少帧,是否使用DOS内存,以及用键盘的哪个键或鼠标的哪个键来终止捕获等等。这些基本的设置都可以使用TcaptureParms结构来描述,你可以使用capCaptureGetSetup函数来得到当前的设置,然后改变此结构的成员变量,再使用capCaptureSetSetu
p函数设置新的设置,之后还可以用CapPreviewScale、CapPreviewRate设置预览的比例与速度,也可以直接使用设备的默认值。
(4)打开预览
利用函数CapOverlay可选择是否采用叠加模式预览,以使系统资源占用小,视频显示速度加快。然后用CapPreview启动预览功能,这时就可以在屏幕上看到来自摄像机的图像了。
通过以上四步就可以建立一个基本的视频捕捉程序,但假如想自己处理从设备捕捉到的视频数据,则要使用捕捉窗回调函数来处理,比如一帧一帧地获得视频数据或以流的方式获得视频数据等。