全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智启新程:效能跃迁与价值创造-橙色-极简办公风
- 拖拉机制造工创新实践考核试卷含答案
- 煤层气排采工岗中安全意识强化考核试卷含答案
- 教研活动组织标准化课堂设计课件
- 2025-2026学年高中教学设计原则
- 2025-2026学年钢琴雪绒花教学设计
- 2026年预算专员招聘笔试试题及答案
- 2025-2026学年风向和风力教学设计
- 2026下半年高中化学教资面试无机物专项真题演练试卷
- 2025-2026学年驴画画教案
- 电网工程限额设计控制指标(2025年水平)
- 2025-2026学年浙江省宁波市鄞州区九年级(上)期中英语试卷
- 2026年春招:中国航空发动机笔试题及答案
- 高环能财务笔试题分析
- 宫腔镜术后并发症的预防与处理
- 影院场馆安全隐患排查及整改措施
- 红十字会救护员考试题库试题(附答案)
- 药物合成培训
- 理发店消防安全教育培训
- 第七讲 携手周边国家 共创美好未来
- 景观工程临时用电方案
评论
0/150
提交评论