视频捕捉中要捕捉视频流是不是必须使用回调函数? 视频捕捉中要捕捉视频流是不是必须使用回调函数?我用的vfw,如果要使用回调函数,是不是自己要全部重写,就像子函数一样?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用vfw的话看你要把捕捉到得视频数据如何处理,如果要直接保存为avi,那就不必自己写回调函数,因为vfw就是为捕捉avi文件设计的,它可以直接完成捕捉-压缩-保存avi的操作。如果你要进行其他操作,那么就必须自己完成回调函数。不过这个很简单,每一帧捕捉到的图像都被作为参数传递到回调函数中,自己建一个位图然后操作就行了。捕捉视频还可以使用dshow来做,但dshow内建的功能只能完成捕捉-回放,如果你要保存为其他文件,就必须自己开发一个dshow renderer filter来写数据。这个比vfw难度要高一些。 //一个回调函数的例子, 保存每一帧图象为bmp文件LRESULT CALLBACK CCapVideo::capVideoStreamCallback(HWND hWnd, LPVIDEOHDR lpVHdr){ CCapVideo *pObj = (CCapVideo*)capGetUserData(hWnd); return pObj->OnStream(lpVHdr);}LRESULT CCapVideo::OnStream(LPVIDEOHDR lpVHdr){ static int i = 0; char szFileName[_MAX_PATH]; sprintf(szFileName, "d:\\savebmp\\%03d.bmp", i++); CBMPWriter::SaveDIB(szFileName, lpVHdr->lpData, lpVHdr->dwBytesUsed, m_pbmpInfo); return 0;} atl设计COM中的头文件问题 MFC中Tab控件问题 怎么判断已打开的CDataBase 连接是否有效 怎样得到窗口背景颜色???(SDK) 【求助】C/C++高手帮忙,谢谢了(分不是问题) 请问:如何在对话框中实现flash的播放? 你们知道联宝的笔记本电脑吗?不知道质量如何?有没有人用过? VC笨问题:我在对话框放了12个Radio Button,怎样将它们分成3组 大家好,小弟在2000下获取数据包并分析后,如将其拦截? 难题??!!! 主程序如何处理DLL中产生的随机消息? [请教]关于File Manager Extensions
如果你要进行其他操作,那么就必须自己完成回调函数。不过这个很简单,每一帧捕捉到的图像都被作为参数传递到回调函数中,自己建一个位图然后操作就行了。捕捉视频还可以使用dshow来做,但dshow内建的功能只能完成捕捉-回放,如果你要保存为其他文件,就必须自己开发一个dshow renderer filter来写数据。这个比vfw难度要高一些。
{
CCapVideo *pObj = (CCapVideo*)capGetUserData(hWnd);
return pObj->OnStream(lpVHdr);
}LRESULT CCapVideo::OnStream(LPVIDEOHDR lpVHdr)
{
static int i = 0; char szFileName[_MAX_PATH];
sprintf(szFileName, "d:\\savebmp\\%03d.bmp", i++);
CBMPWriter::SaveDIB(szFileName, lpVHdr->lpData, lpVHdr->dwBytesUsed,
m_pbmpInfo); return 0;
}