AAC音频文件的播放速度比正常速度快

时间:2019-01-22 11:06:51

标签: mp4 pcm aac fmp4 libfaac

我从设备中采样了原始PCM数据,并通过libfaac将其编码为“ .aac”格式(ADTS格式)的音频文件,而当我以16KHZ或41KHZ对其进行采样时,编码后的“ .aac”文件播放速度更快比正常的。 是什么原因?

参数配置如下:

    pConfiguration->inputFormat = FAAC_INPUT_16BIT;
    pConfiguration->outputFormat = 1; /*0 - raw; 1 - ADTS*/
    pConfiguration->bitRate = 16000; 
    pConfiguration->useTns = 0;
    pConfiguration->allowMidside = 1;
    pConfiguration->shortctl = SHORTCTL_NORMAL;
    pConfiguration->aacObjectType = LOW;
    pConfiguration->mpegVersion = MPEG4;
    //pConfiguration->useLfe = 1;

1 个答案:

答案 0 :(得分:0)

问题已解决:

我丢失了某些数据帧的原始PCM数据,我使用了HISI3516EV100处理器,使用HISI SDK,问题是我配置了PCM数据的参数,在16000HZ的情况下采样率设置为160采样/帧,这将导致每秒产生16000/160 = 100帧,帧速率太高,我需要调用每个PCM数据帧的处理函数进行AAC编码,这会在堆栈中引起很多功能,几乎1000/100 = 10ms需要完成一帧PCM数据才能调用AAC编码接口,频率太高,并且libfaac库占用的CPU很少,导致丢失帧(原始PCM数据帧部分丢失)。丢失),因此在原始PCM数据部分丢失的情况下,编码的AAC数据将比平常播放更快。

解决方案:将PCM帧的帧长延长到160个样本/帧---> 480个样本/帧