使用 Media Foundation 将未压缩的 IEEE 浮点音频编码为 AAC

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

我一直在尝试使用 Media Foundation 将未压缩的 IEEE 浮点音频(MFAudioFormat_Float)编码为 AAC(MFAudioFormat_AAC),但 AAC 编码器似乎只能将未压缩的 PCM 音频(MFAudioFormat_PCM)作为输入- AAC 编码器

当我使用 MFTEnum 或 MFTEnumEx 函数时:

hr = MFTEnum(
    MFT_CATEGORY_AUDIO_ENCODER,
    NULL,                                 // Reserved
    &tininfo /* MFAudioFormat_Float */,   // Input type to match.
    &toutinfo /* MFAudioFormat_AAC */,    // Output type to match.
    NULL,                                 // Attributes to match. (None.)
    &pCLSIDs,                             // Receives a pointer to an array of CLSIDs.
    &count                                // Receives the size of the array.
    );

它没有找到任何可用的编解码器(

count == 0
)。

那么是否可以使用媒体基金会来做到这一点?我可以找到其他编解码器并安装并使用吗?或者也许还有其他方法可以做到这一点,而我做错了什么?

c++ audio ms-media-foundation
1个回答
0
投票

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

输入类型

MF_MT_SUBTYPE                   Subtype.            Must be MFAudioFormat_PCM.
MF_MT_AUDIO_BITS_PER_SAMPLE     Bits per sample.    Must be 16.
MF_MT_AUDIO_SAMPLES_PER_SECOND  Samples per second. The following values are supported: 44100 (44.1 KHz) 48000 (48 KHz)
© www.soinside.com 2019 - 2024. All rights reserved.