使用 DX11 和 DXVA2
Posted
技术标签:
【中文标题】使用 DX11 和 DXVA2【英文标题】:Using DX11 and DXVA2 【发布时间】:2016-01-08 20:27:39 【问题描述】:我正在尝试 测试解码 h264/h265 视频(只有一个 iframe)。这是在 Windows 7 上,所以我可能必须在 2 个 d3d11 设备之间进行互操作,一个具有 11.1 功能集,另一个具有 9.3 功能集。我的问题是,由于严重缺乏加载 h264 文件并使用 DXVA 对其进行解码的样本,我想知道是否有关于如何布局数据以输入 DXVA 进行解码的指南?我已经阅读了How do I use Hardware accelerated video/H.264 decoding with directx 11 and windows 7? 和 https://msdn.microsoft.com/en-us/library/windows/desktop/hh162912(v=vs.85).aspx,但也没有任何关于如何执行上述操作的指南。
谢谢
【问题讨论】:
【参考方案1】:如果您想要一个工作示例来了解如何将数据输入 DXVA,请查看此处:MFNode。在 MFTDxva2Decoder 下,您将看到如何提供数据。它适用于 mpeg1/2 文件格式,但同样适用于 H264(当然有阴影)。
编辑
查看我的回复:How do I use Hardware accelerated video/H.264 decoding with directx 11 and windows 7?
【讨论】:
这已经过期了,但感谢您的回复。你知道 DXVA2 是否与渲染管道并行运行吗?即,我可以在 GPU 着色器管道上使用渲染命令,同时使用 DXVA,并且不会让它们在性能方面相互影响吗? 是的,DXVA2 使用来自 GPU 的视频处理器:它不同于着色器管道。这些进程不会相互影响并并行工作,但如果您在两者之间共享纹理,则需要一些锁定机制。以上是关于使用 DX11 和 DXVA2的主要内容,如果未能解决你的问题,请参考以下文章