媒体基础库中的 UWP AAC 编码,未注册类

Posted

技术标签:

【中文标题】媒体基础库中的 UWP AAC 编码,未注册类【英文标题】:UWP AAC encode in Media Foundation library, Class not registered 【发布时间】:2020-05-14 02:05:51 【问题描述】:

我想在 UWP/Win10 中使用 AACEncode MFT。

https://docs.microsoft.com/en-us/windows/win32/medfound/aac-encoder

我在 wmcodecdsp.h 中找到 有一些定义

EXTERN_C const CLSID CLSID_AACMFTEncoder;

#ifdef __cplusplus

class DECLSPEC_UUID("93AF0C51-2275-45d2-A35B-F2BA21CAED00")
AACMFTEncoder;
#endif

所以.. 我尝试使用

EXTERN_GUID(CLSID_AACMFTEncoder, 0x93AF0C51, 0x2275, 0x45D2, 0xA3, 0x5B, 0xF2, 0xBA, 0x21, 0xCA, 0xED, 0x00);

Microsoft::WRL::ComPtr<IMFTransform> mftAudio_PCM_To_AAC;
hr = CoCreateInstance(CLSID_AACMFTEncoder, NULL, CLSCTX_INPROC_SERVER, IID_IMFTransform, &mftAudio_PCM_To_AAC);

我收到一个 hr 错误代码 "REGDB_E_CLASSNOTREG 类未注册"

表示我不能在 UWP 中使用 AAC 编码??

我还尝试手动将 mfAACEnd.dll 添加到我的 UWP 项目中。 还是不行……

寻求帮助,谢谢。

【问题讨论】:

在uwp中,您可以为AAC音频创建一个编码配置文件,然后转码。关于它的更多细节,你可以参考这个document,看看它是否能满足你的需求。 【参考方案1】:

基于AAC Encoder的Requirements,提到了

它只支持桌面应用而不是 UWP 应用。

如果你想使用这个 api,你可以创建一个桌面应用程序,然后使用 MSIX Packaging Tool 或在 Visual Studio 中创建 Windows Application Packaging Project 将其转换为 UWP 应用程序。

【讨论】:

以上是关于媒体基础库中的 UWP AAC 编码,未注册类的主要内容,如果未能解决你的问题,请参考以下文章

媒体基础视频重新编码产生音频流同步偏移

VBA Selenium“类未注册”- 80040154

CoCreateInstance 返回“类未注册”

编码aac音轨时FFmpeg媒体信息不正确

类未注册错误

Metro Style App MFT“类未注册”错误