1

我为仅包含一个流(无音频)的视频文件创建了拓扑。

它包含三个按顺序连接的节点:

  • 源流节点
  • 一个Mpeg4Part2VideoDecoderas 变换节点
  • EVR的激活对象作为输出节点

调用SetTopology(),允许部分拓扑导致工作回放。但是,我正在尝试自己解决完整的拓扑。

因此,我首先需要将我的输出节点绑定到一个媒体接收器。我遵循手册中指定的指导方针,所有必需的调用似乎都成功了。设置完整拓扑时,我收到MESessionTopologySet事件。

不幸的是,播放不起作用,但我没有收到任何错误。

  • 创建完整拓扑时是否还需要其他任何东西?
  • 我记得在 msdn 文档的某处读到,设置部分拓扑时使用的拓扑加载器也设置了媒体类型。这是必需的吗?如果需要,我在哪里可以找到更多相关信息?
4

1 回答 1

0

Matt Andrews在 msdn 论坛上为我回答了这个问题

如果您绕过拓扑加载器,您肯定需要协商自己的媒体类型。这意味着从 IMFMediaTypeHandler 获取源的媒体类型,将其设置在下游转换中,然后为链下的每个节点查询可用的输入和输出类型以找到兼容的媒体类型。除非您特别需要避免使用 topoloader,否则使用它要容易得多。

于 2012-09-19T14:44:51.723 回答