video - D3D 纹理到 NVIDIA 媒体基础编码器
问题描述
我想直接通过 NVIDIA H.264 Encoder MFT 对 ARGB D3D11 纹理进行编码。但我发现这个 MFT 的输入类型必须是 YUV 格式,如 NV12。所以我必须将纹理映射到内存然后转换为 NV12。有什么办法可以避免内存复制?或者我如何将 ARGB 纹理转换为 NV12 纹理没有内存复制?
解决方案
接受哪些类型的媒体缓冲区“NVIDIA H.264 Encoder MFT”?
1 - 使用底层 Direct3D 表面。(仅适用于存储在 Direct3D 表面中的视频帧。)
2 - 使用 IMF2DBuffer 接口。
3 - 使用 IMFMediaBuffer 接口。
请参阅:未压缩的视频缓冲区
推荐阅读
- excel - Excel VBA-Fixing Row进行比较
- java - 无法连接到 hystrix 仪表板中的命令度量流
- javascript - 重定向到不同域中的相同路径
- android - 使用 Android GraphView 实时绘制图形时出现抖动
- python - NetworkX中Page Rank函数的参数“权重”有什么作用?
- python - numpy 中的 bincount() 方法有什么用?
- c# - 如何将字典键和值作为字符串分配给变量C#
- sql-server - 如何在 T-SQL 查询输出中以交替顺序排列行组
- haskell - 安装 Haskell 平台后尝试运行 ghc 时未加载共享库错误
- php - 使用 Ajax 和 Laravel 从数据库中检索信息