AAC
音频基础
- 采样率(samplerate):定义了每秒从连续信号中提取并组成离散信号的采样个数,单位为Hz。
- 采样周期:即采样率的倒数,表示采样点之间的时间间隔。
- 采样位数:记录采样点数据的精度,一般是8bits或16bits。
- 码率(kbps) = 采样率(kHz) x 采样位数(bits/采样点) x 声道数量
AAC的特点
1. 数据组织格式
AAC有两种音频数据组织格式:ADIF 和 ADTS。
- ADIF (Audio Data Interchange Format),音频数据交换格式。
配置信息在整个文件的开头,只能从文件起始点开始解码,负载率高,适合本地存储。
结构图如下:
- ADTS (Audio Data Transport Stream),音频数据传输流。
特征是它是有同步字节(12bits,0xFFF)的比特流,可以在这个音频流的任意帧开始解码。也就是说每一帧AAC都有头信息,可以在任意帧开始解码。而ADIF只有一个统一的头信息,只有拿到这个头信息才可以开始解码。
结构图如下:
2.数据帧
AAC一帧一般是1024个采样点,对于采样率为44.1kHz的音频,一帧时间为23.22ms;对于采样率为48kHz,一帧时间为21.33ms。(音频数据是流式的,本身没有明确的一帧帧的概念,为了音频算法处理/传输的方便,一般取2.5ms~60ms音频为一帧)
Android audioflinger会做resample,音频输出会转换为48kHz,2 ch。