首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

DirectShow 生产音频 视频怎么压缩

2013-04-09 
DirectShow 生产音频 视频如何压缩本帖最后由 hzy694358 于 2013-03-28 10:25:06 编辑DirectShow生产的avi

DirectShow 生产音频 视频如何压缩
本帖最后由 hzy694358 于 2013-03-28 10:25:06 编辑 DirectShow生产的avi音频文件很大,一分钟将近10M
但是找了下好像也没看到有现成的压缩filter
只有视频有看到IAMVideoCompression

网上资料说的视频压缩VCM 音频ACM有是指的什么 都要自己实现filter?

还有,为何我生产avi文件可以生产asf就不可以呢?


hr = m_pCaptureGB->SetOutputFileName(&MEDIASUBTYPE_Avi, L"C:\\shrhr.wav", &pWriter, NULL);

/* 对pWriter(AviWriter)进行设置 */
IConfigAviMux *pConfig = 0;
hr = pWriter->QueryInterface(IID_IConfigAviMux, (void**)&pConfig);   
if(SUCCEEDED(hr))   
{   
pConfig->Release();
}

hr = m_pCaptureGB->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Audio, mAudioFilter->mFilter, NULL, pWriter); 


hr = m_pCaptureGB->SetOutputFileName(&MEDIASUBTYPE_Asf, L"C:\\shrhr.asf", &pWriter, NULL);

/* 对pWriter(AsfWriter)进行设置 */
IConfigAsfWriter *pConfig = 0;
hr = pWriter->QueryInterface(IID_IConfigAsfWriter, (void**)&pConfig);   
if(SUCCEEDED(hr))   
{   
pConfig->Release();
}

hr = m_pCaptureGB->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Audio, mAudioFilter->mFilter, NULL, pWriter);

[解决办法]
你可以看下这里的介绍:http://msdn.microsoft.com/zh-cn/library/windows/desktop/dd757032%28v=vs.85%29.aspx
主要是用到WM ASF Writer filter,需要从这个FILTER上拿到些接口进行设置。
其他可以参考的: 将视频流保存成wmv格式的文件-http://www.cnblogs.com/matter/archive/2008/07/22/1248511.html

热点排行