关于视频图象捕获的一个基础问题
我用下面代码实现了视频捕获,显示到窗口hWnd_Farther里面,但是发现窗口里显示速度很慢,很占资源。而且我在窗口里还要输出其他信息(包括文字和图象)都被覆盖掉了。
其实我只想获得视频流,不要在窗口显示捕获到的图象,得到视频缓冲区就够了,我可以在回调函数FrameCallbackProc里面利用缓冲区通过别的方式显示捕获图象。
但是试了很多次都没成功,好象视频捕获就是和视频显示绑定在一起似的,而偏偏capCreateCaptureWindow的视频显示作的又很烂。
总之一句话,我想只进行视频捕获,不要在窗口显示捕获图象,该怎么修改下面代码。
ghWndCap=capCreateCaptureWindow((LPSTR) "Capture Window ",
WS_CHILD|WS_VISIBLE,
0,0, width,height,
(HWND)hWnd_Farther,(int)0);
capDriverConnect(ghWndCap,0);//将捕获窗同驱动器连接
//获得驱动器的能力,相关的信息放在结构变量gCapDriverCaps中
capDriverGetCaps(ghWndCap,&gCapDriverCaps,sizeof(CAPDRIVERCAPS));
capSetCallbackOnError(ghWndCap,(FARPROC)ErrorCallbackProc);
capSetCallbackOnStatus(ghWndCap,(FARPROC)StatusCallbackProc);
capSetCallbackOnFrame(ghWndCap,(FARPROC)FrameCallbackProc);
capPreviewRate(ghWndCap,CapFrameRate);//设置Preview模式的显示速率
//
capPreview(ghWndCap,true);//关闭Preview模式
[解决办法]
图像是用directshow画上去的。。。思路错误。
[解决办法]
capCreateCaptureWindow
The capCreateCaptureWindow function creates a capture window.
这个函数本身就是显示视频窗口的。
[解决办法]
要想速度快,并且在上面叠加文字等的话,应该使用Overlay平面来显示。
[解决办法]
不懂 帮顶
[解决办法]
手动去掉Render filter