当前位置: 代码迷 >> 多媒体/流媒体开发 >> IMediaDet怎么控制抓帧的间隔
  详细解决方案

IMediaDet怎么控制抓帧的间隔

热度:10463   发布时间:2013-02-26 00:00:00.0
IMediaDet如何控制抓帧的间隔?
我在视频文件播放时GetCurrentPosition然后建立IMediaDet用GetBitmapBits抓帧,想要每隔5帧抓一次,请问怎么办?

------解决方案--------------------------------------------------------
如果简单地通过IMediaDet去抓,恐怕做不到这么精确。

有一种方法,就是你让每一个sample都回调到应用程序中,你在应用程序中计数,每5帧取出来一帧。大致这样:
1. 在你的应用程序中实现ISampleGrabberCB接口。
2. 调用IMediaDet::GetSampleGrabber获得sample grabber filter的ISampleGrabber接口。
3. 调用ISampleGrabber::SetCallback将你在应用程序上实现的回调接口设置给sampel grabber filter
.....
当filter graph运行时,每个sample都会回调到你在应用程序上实现的回调接口中,在那里你可以对sample计数。

参见directx sdk文档的“Using the Sample Grabber”
  相关解决方案