【问题标题】:Media Foundation Transforms with Two Inputs具有两个输入的媒体基础转换
【发布时间】:2018-10-28 18:31:01
【问题描述】:

是否可以将自定义 AsyncMFT 修改为接受多个 MFT 作为输入(例如连接到 MFTc 的 MFTa 和 MFTb)到 IMFMediaSession(使用 MFCreateMediaSession 创建的 mediasession 对象)?我在网上看到过说明需要自定义媒体会话的参考资料,但这似乎有点过头了。

我已经到了 mftrace(包括代码中的调试)只是在 MediaSession 启动时报告 Catasrophic Failure(在 myMediaSession->Start(NULL, &startPos) 之后立即失败)的地步。拓扑加载正常,如果两个输入 MFT 未连接到同一节点,则它们都可以正常工作。

【问题讨论】:

  • 在 Windows 7 上,这是不可能的。我已经在stackoverflow上回答了这个问题。您需要提供自定义媒体会话
  • 仅供参考 mofo77 的早期回答:stackoverflow.com/a/20268687/868014
  • @mofo77 这可以在没有自定义媒体会话的 Windows 10 上完成吗?
  • @Roman R.:你指的是 MFNode 吗?据我所知,它实际上是连接 source1->MFTa 和 source2->MFTa,然后是 MFTa->MFTb,最后是 MFTb->Sink。我在问 IMFMediaSessoin(非自定义)是否有可能在 Microsoftdocs.microsoft.com/en-us/windows/desktop/medfound/about-mfts
  • 我的假设是有可能,但我自己没有试过,也没有例子可以参考。

标签: ms-media-foundation


【解决方案1】:

在 windows 7 下这是不可能的。

阅读:Mutl-input and multi-output

来自微软的 Becky Weiss 给出了答案:

MFv1 管道不支持多输入 MFT。 Beta 2 Media Session 碰巧没有针对 this yet

明确验证

我想说多输入 MFT 是未来版本的 Media Foundation 可以支持的东西;但目前,我们还没有这种支持

我想 MFv1 是指 Vista,而 MFv2 是指 Windows 7。

您提供“关于 MFT”的链接,只是告诉您可以编写具有多个输入的转换,仅此而已。但问题不在于媒体基金会的转换。

问题在于本机媒体会话无法处理来自转换的多个输入流,无论您使用何种连接类型(源 > 转换、转换 > 转换)。

您收到“灾难性故障”的消息与我使用 AudioMixerMFT 和本机媒体会话时收到的消息相同。

这可以在没有自定义媒体会话的 Windows 10 上完成吗?

我不知道。检查上面的mdsn论坛链接,昨天有人问这个。

PS:如果您选择为您的案例编写自定义媒体会话,我可以提供帮助。由于使用了 AsyncMFT,这将是一个很好的练习。

我将包含自定义媒体会话的项目移至此处:github/mofo7777(在 MFNode > MFNodePlayer 下)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多