【问题标题】:MediaFoundation - Frame is ready?MediaFoundation - 框架准备好了吗?
【发布时间】:2016-07-17 08:50:33
【问题描述】:

我正在使用 Media Foundation 播放视频,我需要对其进行实时编辑,因此我需要知道何时准备好呈现帧,但回调不提供这样的消息。

我唯一的想法是检查帧速率,然后将计时器设置为略低于该帧速率,并使用 GetPosition 检查我在上次调用计时器时所处的位置,但必须有比这更好的方法.

谢谢!

马特

【问题讨论】:

    标签: ms-media-foundation


    【解决方案1】:

    为什么不能在拓扑中注入自己的 IMFStreamSink 实例,在 IMFStreamSink::ProcessSample 的实现中进行编辑并将编辑后的内容传递到您当前使用的任何输出节点?

    此外,如果您使用 EVR,您可以创建自定义演示者 - 请参阅 MSDN 上的 this 文章。

    【讨论】:

    • 花了一天的时间后,我可以肯定地说,我完全糊涂了。我对 MediaFoundation 完全陌生,为了让它正常工作,我使用了下面 MSDN 网站上的教程。我不确定如何将 IMFStreamSink 集成到程序中。似乎这是它自己的做事方式,所以我需要放弃它并重新开始。 msdn.microsoft.com/en-us/library/windows/desktop/…
    【解决方案2】:

    我找到了一个简单的解决方案。设置会话的播放速度,然后从会话创建演示时钟。设置一个计时器,并检查演示时钟。当时间流逝等于播放速度的一个刻度时,将呈现一个新帧。

    【讨论】:

      猜你喜欢
      • 2011-11-15
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2015-11-08
      • 2017-12-23
      • 2017-01-07
      • 2011-10-21
      相关资源
      最近更新 更多