aac音频格式,及其他音频格式

音频帧概念

1)采样率(Sample Rate):每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。一般音乐CD的采样率是44100Hz。
2)帧率(Frame rate):为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。
3)码率(Bit Rate):指视频或音频文件在单位时间内使用的数据流量,该参数的单位通常是Kbps。

音频帧的几个重要参数:
采样率:每秒采集数据的次数
采样精度:每次采集数据的位数
通道数:存在几路音频
比特率:针对编码格式,表示压缩编码后每秒的音频数据量大小。

音频帧跟编码格式相关,它是各个编码标准自己实现的。因为如果以PCM(未经编码的音频数据)来说,它根本就不需要帧的概念,根据采样率和采样精度就可以播放了。比如采样率为44.1HZ,采样精度为16位的音频,你可以算出bitrate(比特率)是44100*16kbps,每秒的音频数据是固定的44100*16/8 字节。

一个音频帧的播放时间的计算方法:
一个音频帧的播放时间==一个AAC帧对应的采样样本的个数/采样频率(单位为s)
(一个AAC原始帧包含一段时间内1024个采样及相关数据 根据aac文档)
例如:采样率 为44.1KHz的音频真的播放时间计算方法
当前AAC一帧的播放时间是= 1024*1000/44100= 22.32ms(单位为ms)

H264的一帧视频的播放时间计算方法:
一帧的播放时间= 1000/帧率(fps)
例如:fps = 25.00 ,计算出来的时常为40ms,这就是同行所说的40ms一帧视频数据。

aac音频格式:
aac音频格式,及其他音频格式_第1张图片

ADTS的头信息一般都是7个字节,分为2部分:

第一个部分:
这里写图片描述
syncword :同步头 总是0xFFF, all bits must be 1,代表着一个ADTS帧的开始
ID:MPEG Version: 0 for MPEG-4, 1 for MPEG-2
Layer:always: ‘00’
profile:表示使用哪个级别的AAC,有些芯片只支持AAC LC 。在MPEG-2 AAC中定义了3种:
这里写图片描述
sampling_frequency_index:表示使用的采样率下标,通过这个下标在 Sampling Frequencies[ ]数组中查找得知采样率的值。
channel_configuration: 表示声道数

第二部分:
这里写图片描述
frame_length : 一个ADTS帧的长度包括ADTS头和AAC原始流.
adts_buffer_fullness:0x7FF 说明是码率可变的码流

ADTS header中大部分信息无用,有用的只有采样率(4bit)、声道数(3bit)和帧的大小(13bit)比较有用。

关于各种音频格式(aac;g711; amr)的帧大小
aac音频一般都是几百个字节;
g711一般都是几十个字节;
amr一般也是几十个字节;
音频真大小一般跟采样率有关系

将AAC打包成ADTS格式
见录像服务器的相关示例代码。

http://blog.csdn.net/liukun321/article/details/25337425
http://blog.csdn.net/w839687571/article/details/40372277

你可能感兴趣的:(综合)