2016-06-14 341 views
0

我试图使用以下参数初始化AAC编码器 aac-profile = 5,mime = audio/mp4a-latm,bitrate = 12000,channel-count = 1,采样率= 8000Android AAC-HE编码器初始化失败,采样率为8khz

但编解码器初始化失败,出现以下错误:

06-14 19:17:58.009 6194-6450/? E/SoftAACEncoder2: Unable to initialize encoder for profile/sample-rate/bit-rate/channels
06-14 19:17:58.010 6194-6449/? E/ACodec: [OMX.google.aac.encoder] ERROR(0x80001001)
06-14 19:17:58.010 6194-6449/? E/ACodec: signalError(omxError 0x80001001, internalError -2147483648)
06-14 19:17:58.010 6194-6449/? E/MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 6

但是,当我尝试用16kHz的采样率,它的工作原理对其进行初始化,但文档称,AAC -HE配置文件支持8khz采样率。任何想法可能是什么问题?

+0

尝试'bitrate = 16000'甚至'bitrate = 32000' ...还有什么是您的位深度设置(8位或16位音频)? –

+0

嗨,谢谢你的回复,我用16000试过,结果是一样的。我正在使用16位音频。 – user2067340

回答

0

什么文件说HE-AAC支持8 kHz采样率?支持它的标准本身和支持它的特定编码器之间也有区别。

实际上,HE-AAC使用称为边带复制(SBR)的技术。这归结为主AAC流本身具有半采样率,然后在其上重建更高采样率。如果您以这种方式编码8 kHz音频,则主AAC流将为4 kHz,而且我不确定编码器是否真的支持这一点。因此,如果您的采样率很高,HE-AAC通常是有意义的 - 尝试将它用于8 kHz音频流没有多大意义。