gpt4 book ai didi

c++ - 如何在不使用媒体转换管道的情况下在 Windows 应用程序中使用 MFT

转载 作者:行者123 更新时间:2023-11-28 05:50:15 24 4
gpt4 key购买 nike

我也是媒体基础编程和 Windows 编程的新手。

这个问题看起来可能很愚蠢,但我在任何地方都没有得到明确的答案。

我的应用程序是捕获屏幕、缩放、编码并将数据发送到网络。我希望提高管道的性能。所以我想更改一些中间库,例如缩放或编码库。

当我进行大量搜索以寻找更好的缩放和编码选项时,我最终得到了一些 MFT(媒体基础变换),例如Video Processor MFTH.264 Video Encoder MFT .

我的应用程序已经实现了流水线,我不想更改整个架构。

我们可以直接使用MFT作为库并添加到我的项目中吗?或者我必须构建完整的管道、源和接收器。根据媒体基础架构,MFT 是中间 block 。它需要 IMFTransform::GetInputStreamInfo 和 IMFTransform::GetOutputStreamInfo。是否可以调用 MFT 的直接 API 来执行(缩放和编码)创建完整的管道?

如果有任何类似的问题已经问过,请提供链接。

最佳答案

是的,您可以直接创建此 IMFTransform 并将其与管道隔离使用。这是编码器 MFT 非常典型的使用模型。您将需要配置输入/输出媒体类型、开始流式传输、馈送输入帧和抓取输出帧。

根据您的转换是同步还是异步(这可能因 MFT 的硬件或软件实现而异),您可能需要使用基本 (https://msdn.microsoft.com/en-us/library/windows/desktop/aa965264(v=vs.85).aspx) 或异步 (https://msdn.microsoft.com/en-us/library/windows/desktop/dd317909(v=vs.85).aspx) 处理模型。

关于c++ - 如何在不使用媒体转换管道的情况下在 Windows 应用程序中使用 MFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com