如何用 DirectShow带的Sample Grabber filter 来截获a/v文件中音频的采样?

cool18_2k 2003-04-29 05:44:01
比如:现在的dvdrip 都是 mp3 ogg ac3 的音频。
我想用 Sample Grabber filter 来获取音频采样,进行处理。
sdk里只讲了视频部分的采样如何获取。。。音频我自己没搞出来 :(
各位大侠帮帮忙~~~
...全文
117 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxqcdit 2003-06-16
  • 打赏
  • 举报
回复
你只需研究一下dshow的例子Scope Filter Sample即可.
cool18_2k 2003-06-14
  • 打赏
  • 举报
回复
一个月过去了。。。ds高手帮帮忙啦~~~
SuperBC 2003-05-13
  • 打赏
  • 举报
回复
gz......
mark
cool18_2k 2003-05-08
  • 打赏
  • 举报
回复
我修改了sdk的GrabBitmaps例子来读取mp3文件。
可是SampleCB中的IMediaSample * pSample->GetTime(&start,&end)
返回的 start end 都是0 方法的返回值 是VFW_E_SAMPLE_TIME_NOT_SET
这怎么办?
tserpent 2003-05-08
  • 打赏
  • 举报
回复
4. 连接filter
AddFilter(pGrabFilter, L"Grabber")

5. 设置回掉函数
pSampleGrabber->SetCallback((ISampleGrabberCB *)this, 0);

6. 接收数据
STDMETHODIMP Cxxx::SampleCB(double SampleTime, IMediaSample *pSample)
tserpent 2003-05-08
  • 打赏
  • 举报
回复
1. 创建实例
CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (LPVOID *)&pGrabFilter)
2. 得到接口
hr = pGrabFilter->QueryInterface(IID_ISampleGrabber, (void **)&pSampleGrabber);

3. 设置属性
pSampleGrabber->SetMediaType(&mt);
// Set working mode as continuous with no buffer
pSampleGrabber->SetOneShot(FALSE);
pSampleGrabber->SetBufferSamples(FALSE);
Fnoopy 2003-05-07
  • 打赏
  • 举报
回复
选定相应的音频子类型,然后在每个从sample grabber filter中获得的采样前加上与这个类型相应的文件头大概就可以了吧。
cool18_2k 2003-05-06
  • 打赏
  • 举报
回复
我是想用 Sample Grabber filter 来实现的,该如何做呢?
matrass_zhao 2003-05-05
  • 打赏
  • 举报
回复
在audio decoder 和 audio render之间插入一个transform filter
cool18_2k 2003-05-03
  • 打赏
  • 举报
回复
谁知道啊?
BlueSky2008 2003-04-30
  • 打赏
  • 举报
回复
帮你up
cool18_2k 2003-04-30
  • 打赏
  • 举报
回复
up~~

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧