【问题标题】:D3D texture to NVIDIA Media Foundation EncoderD3D 纹理到 NVIDIA Media Foundation 编码器
【发布时间】:2018-08-01 15:49:00
【问题描述】:

我想直接通过 NVIDIA H.264 Encoder MFT 对 ARGB D3D11 纹理进行编码。但是我发现这个 MFT 的输入类型必须是 YUV 格式,如 NV12。所以我必须将纹理映射到内存然后转换为 NV12。有什么方法可以避免内存复制?或者我如何将 ARGB 纹理转换为 NV12 纹理没有内存复制?

【问题讨论】:

    标签: video nvidia video-encoding ms-media-foundation


    【解决方案1】:

    “NVIDIA H.264 Encoder MFT”接受哪些类型的媒体缓冲区?

    1 - 使用底层 Direct3D 表面。 (仅适用于存储在 Direct3D 表面中的视频帧。)

    2 - 使用 IMF2DBuffer 接口。

    3 - 使用 IMFMediaBuffer 接口。

    见:Uncompressed Video Buffers

    【讨论】:

      【解决方案2】:

      Nvidia 的 MFT 肯定会更好。即使硬件通常具有能力,它们也不允许 ARGB 输入。您可以使用Video Processor MFT 转换像素格式(在性能不错的 GPU 上)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-30
        • 2019-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        相关资源
        最近更新 更多