【问题标题】: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