我可以用MFT_FRIENDLY_NAME_Attribute获取MFT的名称,并检查它是硬件还是软件MFT_ENUM_FLAG_HARDWARE,如何检查编码器是基于CPU还是基于GPU?
例如英特尔QuickSync是CPU,NVIDIA H.264编码器MFT是GPU,等等
编码器是通过MFTEnumEx(MFT_CATEGORY_VIDEO_ENCODER, ...);获取的,它提供了一个IMFActivate数组,从那里我可以得到MFT标志和编码器的GUID。
发布于 2021-09-28 11:13:01
如何检查编码器是基于CPU还是基于GPU
MFT并不表示它们是基于CPU还是基于GPU。他们不必这样做,但这也没有什么意义。
您已经发现的MFT_ENUM_FLAG_HARDWARE标志已经告诉您您想要的信息。
MFT使用AVStream驱动程序或基于GPU的代理MFT执行基于硬件的数据处理.此类别中的MFT总是异步处理数据。
这个标志告诉在这个编码器后面没有CPU实现,它是一些硬件来处理编码。具体是什么硬件?通常情况下是GPU。
没有带有MFT_ENUM_FLAG_HARDWARE的AMD、Intel或编码器,同时也没有“基于CPU的编码器”(如果H.264/AVC或H.265/HEVC有问题,则根本不存在来自上述供应商的媒体基金会格式因素中的CPU/软件编码器)。
https://stackoverflow.com/questions/69360543
复制相似问题