我正在使用Media Foundation播放视频,我需要实时编辑,所以我需要知道帧何时准备好呈现,但回调不提供这样的消息。
我唯一的想法是检查帧速率,然后设置一个计时器只是害羞,并使用GetPosition检查我在哪里反对我最后一次调用计时器,但必须有一个比这更好的方法
谢谢!
马特
答案 0 :(得分:0)
为什么不能在topologoy中注入自己的IMFStreamSink实例,在IMFStreamSink::ProcessSample
的实现中进行编辑并将编辑内容传递给当前使用的任何输出节点?
此外,如果您使用的是EVR,则可以制作自定义演示者 - 请参阅MSDN上的this文章。
答案 1 :(得分:0)
我找到了一个简单的解决方案。在会话中设置播放速度,然后从会话中创建演示时钟。设置定时器,并检查演示时钟。当时间已经过去等于一个节拍的播放速度时,会出现一个新帧。