


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
directshow 之 视频文件AVI格式摄制 HRESULT CVideoSource:RecoderAVIFrames(char* szFile) HRESULT hr = NULL;OFSTRUCT os;/IBaseFilter *pMux;IFileSinkFilter *pSink;IConfigAviMux * pConfigAviMux;if(OpenFile(szFile, &os, OF_EXIST) = HFILE_ERROR)/ bring up dialog, and set new file size/*CFile f;bool bFile = f.Open(szFile,CFile:modeCreate|CFile:modeWrite);if (!bFile)MessageBox(AfxGetMainWnd()-m_hWnd, TEXT(很抱歉,不能创建文件,请检查该文件夹是否有权限的严格控制),TEXT(Error),MB_OK | MB_ICONEXCLAMATION);*/hr = m_pBuilder-AllocCapFile(LPCOLESTR(szFile),(DWORDLONG)100* 1024 * 1024);if (hr != NOERROR)MessageBox(AfxGetMainWnd()-m_hWnd, TEXT(很抱歉,磁盘空间不够,请调整磁盘空间),TEXT(Error),MB_OK | MB_ICONEXCLAMATION);return FALSE;/hr = m_pBuilder-SetOutputFileName(&MEDIASUBTYPE_Avi,(LPCOLESTR)szFile, &m_pMux, NULL);/hr = m_pBuilder-SetOutputFileName(&MEDIASUBTYPE_Avi,(LPCOLESTR)szFile, &m_pMux, &pSink);hr = m_pBuilder-SetOutputFileName(&MEDIASUBTYPE_Avi,(LPCOLESTR)szFile, &m_pVideoRender, &pSink);if(hr != NOERROR)ErrMsg(TEXT(Cannot set output file);/ Now tell the AVIMUX to write out AVI files that old apps can read properly./ If we dont, most apps wont be able to tell where the keyframes are,/ slowing down editing considerably/ Doing this will cause one seek (over the area the index will go) when/ you capture past 1 Gig, but thats no big deal./ NOTE: This is on by default, so its not necessary to turn it on/ Also, set the proper MASTER STREAMhr = m_pVideoRender-QueryInterface(IID_IConfigAviMux, (void *)&pConfigAviMux);if (hr = NOERROR & pConfigAviMux)hr = pConfigAviMux-SetOutputCompatibilityIndex(TRUE);/ Render the video capture and preview pins - even if the capture filter only/ has a capture pin (and no preview pin) this should work. because the/ capture graph builder will use a smart tee filter to provide both capture/ and preview. We dont have to worry. It will just work./ NOTE that we try to render the interleaved pin before the video pin, because/ if BOTH exist, its a DV filter and the only way to get the audio is to use/ the interleaved pin. Using the Video pin on a DV filter is only useful if/ you dont want the audio./m_pBuilder-GetFiltergraph(&m_pGrapher);/有声音录制,需设置/*if(gcap.fCapAudio)hr = gcap.pConfigAviMux-SetMasterStream(gcap.iMasterStream);if(hr != NOERROR)ErrMsg(TEXT(SetMasterStream failed!);*/hr = m_pBuilder-RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Interleaved,m_pVideoCap, NULL, m_pVideoRender);/hr = m_pBuilder-RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Interleaved,m_pVideoCap, NULL, m_pMux);if(hr != NOERROR)hr = m_pBuilder-RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, m_pVideoCap, NULL, m_pVideoRender);/hr = m_pBuilder-RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, m_pVideoCap, NULL, m_pMux);if(hr != NOERROR)ErrMsg(TEXT(Cannot render video c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Lesson 2 What's the temperature in Yantai说课稿-2025-2026学年中职英语第一册人教版(中职三年制)
- 3.3.2 抛物线的简单几何性质第1课时教学设计-2024-2025学年高二上学期数学人教A版(2019)选择性必修第一册
- 7 不甘屈辱奋勇抗争2023-2024学年五年级下册道德与法治同步教学设计(统编版)
- 蔬菜储藏知识培训课件
- 蔬菜保鲜知识培训内容课件
- 2025年中考化学试题分类汇编:工艺流程题(第1期)解析版
- 写作:如何突出中心(说课稿) 七年级语文上册同步备课系列(统编版)
- 2025年天津市河西区中考三模物理试题(解析版)
- 四年级英语下册 Unit 3 At the zoo Part B第一课时说课稿2 人教PEP
- 蒸制食品技术知识培训
- 2025-2026学年人教版小学数学四年级上册教学计划及进度表
- 2025年秋季学期(统编版)二年级上册语文教学工作计划及教学进度表
- 2025年河南开封产城融合投资集团有限公司招聘考试笔试试题(含答案)
- 2025年广西中考语文试题卷(含答案)
- 山西省运城市各县区乡镇行政村村庄村名居民村民委员会明细
- 河西走廊课件
- 第2课 绘画作品中的劳动者 课件 五年级美术上册 岭南版(共15张PPT)
- (高职)电子商务英语电子课件教学PPT(完整版)
- 牙龈出血牙龈肥大
- 汽车机械基础(全套课件)
- (完整版)五年级数学思维拓展课程整体设计
评论
0/150
提交评论