AAC格式分析

简介

AAC⾳频格式:Advanced Audio Coding(⾼级⾳频解码),是⼀种由MPEG-4 标准定义的有损⾳频压缩格式,由Fraunhofer发展,Dolby, Sony和AT&T是主 要的贡献者。

通常会将AAC与ADTS等容器格式混淆,但它们其实是不同的概念。AAC是编码规范,ADTS/ADIF是它的容器格式。

  1. ADIF (Audio Data Interchange Format):

    • ADIF是一种AAC音频的文件封装格式,它将AAC编码后的数据直接存储在文件中。
    • ADIF文件中不包含任何帧头信息,整个文件就是纯AAC编码数据。
    • ADIF格式不适合流媒体传输,因为无法实现随机访问。
  2. ADTS (Audio Data Transport Stream):

    • ADTS是AAC音频的一种容器格式,常用于流媒体传输。
    • ADTS在AAC编码数据前添加了帧头信息,包括一些同步字节、采样率、声道数等。
    • ADTS格式允许随机访问,非常适合用于流式传输。
    • ADTS通常用于MP4、TS等容器格式中的AAC音频部分。

简单说,ADTS可以在任意帧解码,也就是说它每⼀帧都有头信息。ADIF只有⼀ 个统⼀的头,所以必须得到所有的数据后解码。 

且这两种的header的格式也是不同的,⽬前⼀般编码后的和抽取出的都是 ADTS格式的⾳频流。两者具体的组织结构如下所示:

有的时候当你编码AAC裸流的时候,会遇到写出来的AAC⽂件并不能在PC和⼿ 机上播放,很⼤的可能就是AAC⽂件的每⼀帧⾥缺少了ADTS头信息⽂件的包装 拼接。

ADIF 分析

这个格式比较少见,简单认识一下即可,ADIF 是一种用于存储 MP3 编码音频数据的容器格式。下图是ADIF格式的序列,由adif_header、byte_alignment、raw_data_stream三部分组成。byte_alignment是用来做字节对齐的,也就是说,ADIF格式由一个ADIF头信息(adif_header) 和 原始数据流(raw_data_stream) 构成。

 

ADTS分析

ADTS格式每⼀帧由ADTS Header和AAC Audio Data组成。结构体如 下:

每⼀帧的ADTS的头⽂件都包含了⾳频的采样率,声道,帧⻓度等信息,这样解码器才能解析读取。

⼀般情况下ADTS的头信息都是7个字节,分为2部分:

adts_fixed_header();
adts_variable_header();

其⼀为固定头信息,紧接着是可变头信息。固定头信息中的数据每⼀帧都相同,⽽可变头信息则在帧与帧之间可变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值