lformat教程-()

电脑教程 次浏览手机阅读
lformat教程 ()

问题背景:

主流封装格式支持的音视频编码标准是H264 AAC,其中像TS、RTP、FLV、MP支持音频AAC编码方式。当然,后继者也不乏Opus这种编码方法主要用于互联网场景,如谷歌WebRTC使用音视频解决方案Opus,最新发布的Android10支持的音视频编码方法是AV1和Opus,但是AAC目前广电、安防、电影院等应用最广泛,Opus威胁还不够AAC的地位。本文准备讲解AAC的封装格式ADTS顺便解释一下字段意思和解封装AAC编码的一些基本情况,如果只关心解封装,直接看【AAC的封装格式】这节即可。

AAC基本概况:

l AAC(Advance Audio Coding):

基于1997年出现的高级音频编码MPEG-当时被称为2的音频编码技术MPEG-2 AAC,所以把它当作MPEG-2(MP2)标准的延伸。是由Fraunhofer IIS、杜比实验室,AT&T、Sony公司共同发展的目的是取代MP3格式,随着MPEG-4(MP4)2000年成型的标准是AAC也叫M4A。

l 和AC3编码关系:

和AC3关系不大,AC3早于AAC,是由AAC杜比实验室与日本先锋合作开发的新编码方法。AAC能输出AC-3任何码率,胜过AC-3.压缩率更高,但技术更复杂。

l AAC背景与发展:

1997年制定了不兼容MPEG-1的音频标准MPEG-2 NBC即MPEG-2 AAC;

1999年AAC又增加了LTP和PNS工具,形成了MPEG-4 AAC V1;

2002年在MPEG-4 AAC v1增加了SBR形成了错误的鲁棒工具 HE-AAC;

2004年MPEG-4在HE-AAC引入了PS模块,提高降码率性能,形成了EAAC ;

增加了1999年、2002年和2004年SBR和PS等编码技术的统称MPEG-4 AAC;

备注:上面这些SBR PS缩写是音频编码算法的代名词,网上比较多,感兴趣的可以自己进一步搜索。1. SBR技术即Spectral Band Replication音乐的主要频谱集中在低频段,高频段幅度很小,但很重要,决定了音质。1. SBR技术即Spectral Band Replication(频段复制)音乐的主要频谱集中在低频段,很小,但很重要,决定了音质。如果整个频段编码,如果是为了保护高频,低频段编码会太细,文件会很大;如果低频的主要成分保存下来,高频成分就会失去音质。SBR切割频谱,低频单独编码保存主要成分,高频单独放大编码保存音质,统筹考虑,减少文件大小,完美解决矛盾。

2. PS指“parametric stereo(参数立体声)。原立体声文件的大小是一个声道的两倍。然而,两个声道的声音有一定的相似性。根据香农信息熵编码定理,应删除相关性,以减少文件的大小。所以PS该技术存储了一个声道的所有信息,然后用参数用很少的字节描述另一个声道的区别。

l AAC编码技术参数:

采样率范围:8KHz-96KHz 范围广,即模拟信号样多少次模拟信号;

码率:8kbps-576kbps,支持范围较宽,可考虑压缩比和质量;

声道:最多支持48个主声道,16个低频声道,声音细节更丰富,音乐场景也更多;

采样精度:采样点需要在计算机上表示占用的字节数,一般为2字节16bit表示;

l AAC编码的主要规格:

根据不同的编码技术,AAC编码分为九种规格H264的编码规格差不多。

1. MPEG-2 AAC LC低复杂度规格(Low Complexity)编码方法相对简单,没有增益控制,但提高了编码效率,可以在编码效率和音质中找到平衡点。

2. MPEG-2 AAC Main 主规格

3. MPEG-2 AAC SSR 可变样率规格(Scaleable Sample Rate)

4. MPEG-4 AAC LC 低复杂度规格(Low Complexity)

5. MPEG-4 AAC Main 主要规格-包括除增益控制外的所有功能,音质最好

6. MPEG-4 AAC SSR 可变样率规格(Scaleable Sample Rate)

7. MPEG-4 AAC LTP 长期预测规格(Long Term Prediction)

8. MPEG-4 AAC LD 低延迟预测规格(Low Delay)

9. MPEG-4 AAC HE 高效率规格(High Efficency)--该规格适用于低码率编码,有Nero-ACC编码器支持是一种成熟的商用编码器。

目前使用最多的是LC和HE(适合降低码率),流行的Nero AAC支持编码程序LC、HE、HEv23种规格,编码后AAC显示音频和规格LC。其中HE就是在AAC(LC)编码技术增加SBR技术,HEv2就是AAC(LC)技术不仅增加了SBR同时,技术也在增加PS技术。

因此,一般的商业音频编码器只支持部分编码规格,这也是我们选择编码器的重要考虑因素之一,因为不同的编码规格支持不同的音频采样率,编码技术和算法的复杂性也不同。

l AAC编码方法特点:

1. AAC高压缩比的音频编码方法G7xx、MP3、AC3系列压缩比高,质量和CD差不多,但和比较新的一样Opus还是差不多,但是Opus尚未充分普及;

2. AAC还采用了变换编码算法,采用了更高的滤波器组,这就是压缩高的原因;

3. AAC为提高压缩比,还采用了噪声重组、反向自适应预测、联合立体声和量化霍夫曼编码算法等新技术;

4. AAC它支持1-48个音轨和15个低频音轨,具有多种语言兼容性;

5. AAC声频范围更宽,从8KHz-96KHz,远宽于MP3的16KHz-48KHz范围;

6. AAC特殊算法可以保持高频和低频。声音细节更丰富、更清晰、更接近原声;

7. AAC采用优化算法,解码端简单,降低了解码端处理的复杂性;

AAC封装格式:

n AAC封装类型:

1. ADIF:Audio Data Interchange Format音频数据交换格式一般用于通过写文件将音频存储在磁盘中,不能随机访问,文件中间不允许解码。只有拿到整个文件才能开始渲染播放,暂时没用,不是本文的重点。只有拿到整个文件才能开始渲染播放,暂时没用,不是本文的重点。

2. ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特点是同步字节AAC截断音频,然后允许客户端在任何地方解码播放,适合网络传输场景。这也是本文介绍的封装格式的重点。

ADTS格式如下:

n AAC封装头字段:

ADIF的格式:

adif_sequence

adif_header byte_alignment raw_data_stream

adif_header byte_alignment raw_data_block... raw_data_block

ADIF Header头部信息如下:

ADTS的格式:

adts_sequence

adts_frame adts_frame ... adts_frame

adts_fixed_header adts_variable_header error_check raw_data_block error_check

ADTS header 固定头和可变头信息:

固定头是指一旦形成音频文件,所有帧的信息头字段都有相同的含义,但可变头意味着每个帧的字段都不同。不要把它理解为可有可无。

?推荐相关视频

音视频开发系列-快速掌握音视频开发的基知识(视频录制原理、视频播放原理、视频基础知识、音频基础知识)_哔哩哔哩_bilibili

音视频学习的最佳实践-从FFmpeg开发流媒体服务器_哔哩哔哩_bilibili

学习地址:免费FFmpeg/WebRTC/RTMP/NDK/Android高级音视频流媒体开发-学习视频教程-腾讯课堂

需要更多ffmpeg/webrtc..81285908年音视频流媒体开发学习资料

?ADTS帧头的每个字段和含义:

序号

长度bits

说明

解释

1

Syncword

12

all bits must be 1

总是0xFFF,代表一个ADTS帧的开始,作为同步每帧起始位置的分界符。

2

ID即MPEG version

1

0 for MPEG-4, 1 for MPEG-2

一般用0,因为都属于MPEG的规范。

3

Layer

2

always 0

总是00

4

Protection Absent

1

set to 1 if there is no CRC and 0 if there is CRC

是否有代表CRC检验字段,1代表没有,0代表有。

5

Profile

2

the MPEG-4 Audio Object Type minus 1

代表使用哪个级别和规范?AAC,其中01代表Low Complexity(LC),其中profile等于Audio Object Type所有值减1Audio Object Type如下所示。

6

Sampling Frequency Index

4

MPEG-4 Sampling Frequency Index (15 is forbidden)

采样率下标,由于AAC采样率范围为8KHz-96KHz,所以用这个字段来决定。

7

Private Bit

{x

路由知识






路由知识












路由知识

喜欢 ()