ffmpeg学习11 音频编码

1、音频压缩

追求两个极端,将数据压缩的越小越好,数据压缩越快越好,这两个点是悖论的,所以要寻找平衡点

1.1、消除音频冗余信息  比如低于20hz高于20Khz,也是有损压缩

音频压缩技术是在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩。

压缩的主要方法是去除采集到的音频冗余信息。所谓冗余信息包括人耳听觉范围外的音频信号以及被掩蔽掉的音频信号。

信号的遮蔽可以分为频域遮蔽时域遮蔽

https://baike.baidu.com/item/%E6%8E%A9%E8%94%BD%E6%95%88%E5%BA%94/2214658?fr=aladdin

1.1.1、频域遮蔽

ffmpeg学习11 音频编码

1.1.2、时域遮蔽

ffmpeg学习11 音频编码

1.2、无损压缩

1.2.1、无损编码   熵编码

  • 哈夫曼编码
  • 算术编码
  • 香农编码

2、音频编码过程

ffmpeg学习11 音频编码

 

3、常见的音频编码器比较

常见的音频编码器包括OPU、AAC、Ogg、Speex、iLBC、AMR、G.711等

其中、AAC在直播系统中应用的比较广泛;OPUS是较新的音频编码器,WebRTC默认使用OPUS;固话一般用G.711系列

网上评测结果:OPUS>AAC>Ogg

3.1、AAC编码器介绍

AAC(Advanced Audio Coding)由Fraunhofer IIS、杜比实验室、AT&T、Sony等公司共同开发,目的是取代MP3格式

AAC比MP3压缩率高,保针高

最开始是基于MPEG-2的音频编码技术,MPEG-4标准出现后,AAC重新集成了其特性,加入了SBR技术和PS技术

目前常用的规格有AAC LC、AAC HE V1、AAC HE V2

3.2、AAC规格

ffmpeg学习11 音频编码

3.2、AAC规格描述

AAC LC:(Low Complexity) 低复杂度规格,码流是128k,音质好

AAC HE:等于AAC LC + SBR(Spectral Band Replication)。其核心思想是按频谱分保存。低频编码保存主要成分,高频单独放大编码保存音质。码流在64k左右

AAC HE V2:等于AAC LC + SBR + PS(Parametric Stereo)。其核心思想是双声道中的声音存在某种相似性,只需存储一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方。码流在64K左右。

3.3、AAC格式

ADIF(Audio Data Interchange Format)

    这种格式的特征是可以确定的找到这个音频数据的开始,只能从头开始解码,不能在音频数据流中间开始。这种格式常用在磁盘文件中。

ADTS(Audio Data Transport Stream)

    这种格式的特征是每一帧都有一个同步字,所以可以在音频流的任何位置开始解码。它类似于数据流格式。

4、ADTS格式

4.1、ADTS结构

ADTS由7/9个字节组成

https://developer.aliyun.com/article/243364

ffmpeg学习11 音频编码

 

 

 

 

巨人的肩膀

编程必备基础-音视频小白系统入门课 https://coding.imooc.com/class/415.html

经典再升级-FFmpeg音视频核心技术全面精讲+实战 https://coding.imooc.com/class/279.html