如何设置 Microsoft WMF VP9 解码器来解码 VP9 视频

问题描述 投票:0回答:1

我正在编写 CPP 代码,它使用 Microsoft WMF 解码器来解码各种编解码器。它适用于其中的许多格式:H264、H265、MPEG1、MPEG2、VP8 和 AV1,都可以完美工作。 VP9 看起来应该也支持,文档中列出了一个 GUID:

const GUID MFVideoFormat_VP90 = { FCC('VP90'), 0x0000, 0x0010, { 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } };

VP8也有类似的: const GUID MFVideoFormat_VP80 = { FCC('VP80'), 0x0000, 0x0010, { 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } };

当我使用这些 GUID 枚举解码器时,我找到一个解码器

友好名称:VP9VideoExtensionDecoder

但是当我测试此解码器的可用输入时,唯一可用的是 VP80

为了以防万一,我尝试使用 VP9 编码的视频进行此操作,但它不会解码视频。我用 VP8 视频进行了测试,效果很好。所以,我想知道在设置 VP9 时是否需要做一些额外的事情?我正在遵循他们为 H264 和 MPEG1 提供的 Microsoft 代码示例,据我所知,我所做的一切都与他们完全一样。

我从微软商店获得了编解码器,当我将 VP9 编码的视频加载到 Microsoft Media Player 中时,它们播放得很好,所以我认为编码工作正常。它在 DXDiag 中正确显示

有人能做到这一点或者可以提出可能出现什么问题吗?甚至为我指明文档或源代码的方向?微软关于这方面的文档似乎非常稀疏

总结:

我按照 Microsoft 的示例代码,使用他们提供的 UID 和 FCC 创建了一个使用 WMF 的 VP9 解码器。解码器的创建没有问题,但仅提供 VP8 作为输入,不适用于 VP9 编码的视频。同样的过程也适用于 VP8

decoder vp8 wmf vp9
1个回答
0
投票

没有人看到这个或有答案吗? VP9解码器看起来很奇怪,我在枚举它后检查了它的友好名称,它是“VP9VideoExtensionDecoder”,只提供VP80作为输入。它可以很好地解码 VP8,但我需要解码 VP9,这似乎是它的用途:(

© www.soinside.com 2019 - 2024. All rights reserved.