首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在directshow中使用SampleGrabber过滤器生成帧号与帧采样时间之间的映射

在directshow中使用SampleGrabber过滤器生成帧号与帧采样时间之间的映射
EN

Stack Overflow用户
提问于 2013-02-15 23:57:36
回答 1查看 592关注 0票数 0

在我的一个应用程序中,我需要知道给定视频文件的帧位置(帧编号)和实际帧采样时间之间的映射。我在回调模式下使用Directshow SampleGrabber过滤器。我覆盖了ISampleGraberCB类的BufferCB方法,每当调用回调时,我都会将到达的sampletime映射到map中的frame位置。每当新样本从零开始到达时,帧位置就会递增。虽然我能够生成所需的地图,但当涉及到处理大型视频文件时,上述方法非常慢。有人能就如何快速生成此地图或任何其他更好的方法提供任何建议吗?

提前谢谢。

普拉迪普

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-16 05:25:26

在DirectShow中基本上没有“帧编号”这样的东西,只有时间戳。唯一需要做的就是遍历整个文件并记录时间戳,就像你已经做的那样。

但是,如果您将样本采集器设置为接收原始/未解码的fames,则该过程可能会更快。这种方式不需要解码器,整个帧的迭代发生得非常快。不要忘记从图表中删除时钟以请求尽快处理(而不是默认的实时速度)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14898471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档