DirectShow视频摄像
来源:互联网 发布:codeblocks运行c语言 编辑:程序博客网 时间:2024/05/16 14:52
以下为视频采集的主要代码(不全),不可直接编译。
完整代码见http://download.csdn.net/detail/u011073510/8319753
1:枚举设备(有些电脑连接了多个摄像头)
<pre name="code" class="cpp">//创建COM对象实例 ICreateDevEnum *pCreateDevEnum; HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, (void**)&pCreateDevEnum); //枚举每一个设备IMoniker *pM; //用这来表示一个设备while(hr = pEm->Next(1, &pM, &cFetched), hr == S_OK){}//枚举设备
2:选择一设备(从中选择一个摄像头)
//连接到指定序号的设备pM->BindToObject(0, 0, IID_IBaseFilter, (void**)pFilter); //pFilter , IBaseFilter**类型 , pM(指定的IMoniker) //添加IBaseFilter 到 IGraphBuilderhr = m_pGB->AddFilter(m_pBF, L"Capture Filter");
3:采集视频设置
//创建m_pGrabBase ,由ISampleGrabebr 类型的m_pGrabber 作为参数初始化 CComQIPtr<IBaseFilter, &IID_IBaseFilter> pGrabBase(m_pGrabber); //添加pGrabBase到IGraphBuilderhr = m_pGB->AddFilter(pGrabBase, L"Grabber"); //预览或采集视频 开始获取摄像头拍摄的信息hr = m_pCapture->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video,m_pBF,pGrabBase,NULL); //设置回调对象,每次获取完摄像头像素信息后系统自动调用m_cb(CSampleCB类型)的成员函数 BufferCB(double , BYTE *pBuffer, long lBufferSize)hr = m_pGrabber->SetCallback(&m_cb, 1);
0 0
- DirectShow视频摄像
- 摄像 图片 视频
- 【视频:Arduino_OpenWRT无线摄像小车】
- 网络摄像视频方案整理
- Directshow中的视频捕捉
- Directshow中的视频捕捉
- Directshow中的视频捕捉
- Directshow中的视频捕捉
- directshow的视频采集
- Directshow中的视频捕捉
- DirectShow播放视频
- DirectShow视频捕获
- DirectShow 播放视频
- 用directshow捕捉视频
- DirectShow .Net 实现视频
- Directshow的视频捕捉
- DirectShow视频采集方案
- directshow 采集视频
- iOS资源
- [leetcode 91] Decode Ways
- 使用JDBC进行数据访问【spring-framework-reference】
- vim代码折叠功能
- #ifdef __cplusplus深度剖析
- DirectShow视频摄像
- Android通过jxl.jar实现对excel的操作
- Unity工具栏与菜单栏
- vim括号引号html标签自动补全
- uva 11258(dp)
- Android系统的开机画面显示过程分析
- uva10599(最长增长子序列)
- 技术人生之八:第一次发年终奖
- hihoCoder - 1089 - 最短路径·二:Floyd算法 (floyd算法!!)