首页 > 解决方案 > D3D 纹理到 NVIDIA 媒体基础编码器

问题描述

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

标签: videonvidiavideo-encodingms-media-foundation

解决方案


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

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

2 - 使用 IMF2DBuffer 接口。

3 - 使用 IMFMediaBuffer 接口。

请参阅:未压缩的视频缓冲区


推荐阅读