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

IMediaDet怎么控制抓帧的间隔

2012-02-24 
IMediaDet如何控制抓帧的间隔?我在视频文件播放时GetCurrentPosition然后建立IMediaDet用GetBitmapBits抓

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”

热点排行