音频冗余信息
音频压缩技术是保证信号在听觉不失真的前提下,对音频数据信号进行尽可能大的压缩
压缩的主要方法就是去除采集到的冗余信息,所谓冗余信息就是超出人耳听觉范围的音频信号和被遮蔽掉的音频信号
遮蔽的音频信号包括频域遮蔽和时域遮蔽
频域遮蔽
image.png时域遮蔽
image.png无损编码
熵编码:哈夫曼编码、算术编码、香农编码
哈夫曼编码
image.png音频编码过程
image.png常见的音频编码器
常见的音频编码器包括:OPUS(文件小、压缩率高)、AAC(运用最广泛的音频编码器,IOS、Android 嵌入式)Ogg、Speex(解决了回音消除,在AAC之前比较受欢迎的音频编码器)、iLBC、AMR、G.711
编解码器总结:不同的场景使用的音频编码器可能不一样,一般情况下,AAC在直播系统中使用比较广泛、OPUS是比较新的编码器,WebRTC默认使用的是OPUS音频编码器、固话使用的是G.711系列
image.png image.png
AAC编码器介绍
AAC(Advanced Audio Coding)由Fraunhofer IIS、杜比实验室、AT&T、Sony等公司共同开发、目前是取代MP3格式
最开始是基于MPEG-2的音频解码技术,MPEG-4标准出现后,AAC重新集成其特性,加入了SBR技术和PS技术
目前常用的规格有:AAC LC、AAC HE V1和AAC HE V2
image.png
AAC LC:(LOW Complexity)低复杂度规格,码流是128K,音质好
AAC HE V1:AAC LC + SBR(Spectral Band Replication),其核心思想是按频谱分保存,低频编码保存主要成分,高频单独放大编码保存音质
码率在64K左右
AAC HE V2:AAC LC + SBR + PS(Parametric Stereo)其核心思想是双声道中的声音存在某种相似性,只需要存储一个声道的全部信息,然后,花很少的字节用描述另一个声道在不同的地方
ADIF(Audio Data InterChange Format)
这种格式的特性是可以确定找到这个音频数据的开始,只能从头开始解码,不能从音频数据流的中间开始,这种格式常用在磁盘文件中
ADTS(Audio Data Transport Stream)
这种格式的特性是每一帧都有一个同步字,所以可以在音频流的任意位置开始解码,它类似于数据流格式
ADTS结构
ADTS由7/9个字节组成 ADTS格式查询
image.png
ffmpeg命令生成AAC文件
ffmpeg -i xxx.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a
aac_he_v2 3.aac
-i:输入的多媒体文件
-vn:v表示的是video ,n表示的no 意思是过滤掉视频数据
-c:a : c表示的是codecs编码器,a表示的是audio,也就是指定的音频编码器
-ar:表示的是音频的采样率
-channels:声道数
-profile:对fdk-aac编码器设置了参数,对应的是a,也就是对音频的参数
最后3.aac也就是输出的aac格式的文件名称
网友评论