傻傻的大熊猫 · How to: Send and ...· 1 年前 · |
正直的桔子 · jQuery实现无限循环滚动公告-jquer ...· 1 年前 · |
想旅行的遥控器 · MediaRecorder Error: ...· 1 年前 · |
瘦瘦的仙人球 · ARM64架构下,OpenJDK的官方Doc ...· 1 年前 · |
坏坏的香槟 · logstash remove_field ...· 1 年前 · |
我想使用DirectX 12将H264文件的每一帧加载到纹理中并渲染它。然而,关于这样做的信息很少,而且Microsoft网站只有有限的表面文档。
Media Foundation提供了大量的示例,并提供了硬件支持的解码。媒体基金会是对DirectX的包装,还是在做别的事情?
如果不是,与DX 12方法相比,Media Foundation等效项的优化程度会有多低?
从本质上讲,媒体基础和DirectX12视频解码的最大区别是什么?
我已经在我的引擎中使用了DirectX 12,所以这是专门针对DX12的。
提前谢谢。
硬件视频解码来自DXVA (DXVA2)接口。它的DirectX 11演进是D3D11视频设备的D3D11应用编程接口的一部分。微软以媒体基础API原语的格式在硬件加速解码器上提供了包装器。此解码器提供硬件解码功能的使用,以及回退到软件解码方案。
请注意,即使Media Foundation可用于UWP开发,您的选择也是有限的,并且不能直接为您提供像前面提到的transform这样的原语。但是,如果您使用更高级别的API(特别是Media Foundation ),则可以在 Source Reader API 应用程序中利用硬件加速的视频解码。
Media Foundation实现提供与Direct3D 11的互操作性,特别是在视频编码/解码部分,但不能与Direct3D 12互操作。您将无法开箱即用Media Foundation和DirectX 12。您必须实现GPU11/12互操作来在API之间传输数据(或者,在适用的情况下,使用对相同Direct3D数据的共享访问)。
或者,你将不得不转向底层
ID3D12VideoDevice::CreateVideoDecoder
,这是前面提到的DXVA2和Direct3D 11视频解码API的进一步发展,具有类似的用法。
不幸的是,如果媒体基金会以糟糕的文档和难以启动的开发而臭名昭著,那么Direct3D 12视频解码没有任何信息,您将不得不享受先驱的感觉。
无论哪种方式,所有提到的都是硬件辅助视频解码实现的相对较薄的包装器,具有相同的出色性能。我建议采用媒体基础路径,并在必要时实现11/12互操作。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
傻傻的大熊猫 · How to: Send and Retrieve UTF-8 Data Using Built-In UTF-8 Support - PHP drivers for SQL Server | Microsoft Learn 1 年前 |
正直的桔子 · jQuery实现无限循环滚动公告-jquery 循环 1 年前 |