来自https://msdn.microsoft.com/en-us/library/windows/desktop/dd797815%28v=vs.85%29.aspx
在约束中,您可以看到“DXVA加速的最大保证分辨率是1920×1088像素;在更高的分辨率下,解码是用DXVA完成的,如果它得到底层硬件的支持,则使用软件进行解码。”
有没有一种方法可以检测到解码是在软件中完成的?
我们有问题的AMD图形控制器时,试图解码4K H264视频。
我们知道硬件不支持4K解码,理论上它应该回到软件上。然而,我们发现,不管它应该做什么,我们会得到很多损坏或黑色的帧。
我希望我们能够检测到DXVA是否已经退回到SW解码,在这种情况下,我们根本不尝试使用DXVA,而是使用完整的软件路径。
谢谢
发布于 2015-08-13 18:14:48
H264 MFT不公开它是否使用DXVA进行解码。
它使用IDirectXVideoDecoderService::CreateVideoDecoder创建DXVA解码器,因此您可以手动调用该函数,查看它是否成功。
我在Mozilla bug 1193547中添加了对此的完整解释(和apitrace )。
发布于 2015-03-19 08:50:27
您是否尝试过通过mftrace运行应用程序(包括在Windows中)?mftrace输出非常冗长,通常会让您知道在编码过程中使用的是哪种MFT。当硬件编码可用时,您可能会发现正在使用的不同的MFT。
例如,当系统硬件支持H264编码时,将使用作为硬件编码器的Intel,而不是标准的Microsoft。
https://stackoverflow.com/questions/29137875
复制相似问题