音频格式对比

使用场景 + 编解码库有哪些,Android是否适用~

https://www.cnblogs.com/stnlcd/p/7151413.html

public static final String MIMETYPE_AUDIO_AMR_NB = "audio/3gpp";
public static final String MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb";
public static final String MIMETYPE_AUDIO_MPEG = "audio/mpeg";
public static final String MIMETYPE_AUDIO_AAC = "audio/mp4a-latm";
public static final String MIMETYPE_AUDIO_QCELP = "audio/qcelp";
public static final String MIMETYPE_AUDIO_VORBIS = "audio/vorbis";
public static final String MIMETYPE_AUDIO_OPUS = "audio/opus";
public static final String MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
public static final String MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
public static final String MIMETYPE_AUDIO_RAW = "audio/raw";
public static final String MIMETYPE_AUDIO_FLAC = "audio/flac";
public static final String MIMETYPE_AUDIO_MSGSM = "audio/gsm";
public static final String MIMETYPE_AUDIO_AC3 = "audio/ac3";
public static final String MIMETYPE_AUDIO_EAC3 = "audio/eac3";
public static final String MIMETYPE_AUDIO_SCRAMBLED = "audio/scrambled";

以上格式都可以使用原生的MediaCodec进行编码;

有损压缩

MP3

  MP3的全称是MovingPicture Experts Group Audio Layer Ⅲ。简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEGAudio Layer 3,所以人们把它简称为MP3。
  MP3是利用MPEGAudio Layer 3的技术,将音乐以1:10甚至1:12的压缩率,压缩成容量较小的文件,换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度。而且还非常好的保持了原来的音质。正是因为MP3体积小,音质高的特点使得MP3格式几乎成为网上音乐的代名词。每分钟音乐的MP3格式只有1MB左右大小,这样每首歌的大小只有3-4兆字节。
  MP3编码质量分为:固定码率(CBR),平均码率(ABR)和动态码率(VBR)。早期的MP3编码技术并不完善,很长的一段时间以来,大多数人都使用128Kbps的CBR(固定编码率)格式来对MP3文件编码,直到最近,VBR(可变编码率)
  和ABR(平均编码率)的压缩方式出现,编码的比特率最高可达320Kbps,MP3文件在音质上才开始有所进步,而LAME的出现,则为这一进步带来了质的飞跃。
  补充:最高比特率320K,高频部分一刀切是它的缺点。音质不高!
  MPEG音频文件的压缩是一种有损压缩,MPEG3音频编码具有10:1~12:1的高压缩率,同时基本保持低音频部分不失真,但是牺牲了声音文件中12KHz到16KHz高音频这部分的质量来换取文件的尺寸,相同长度的音乐文件,用 *.mp3 格式来储存,一般只有 *.wav文件的1/10,因而音质要次于CD格式或WAV格式的声音文件;

推荐的库
1 . lame;
2 . FFmpeg;

使用场景
各种音乐网站一般用这种;
适合安卓;

参考资料

https://blog.csdn.net/byhook/article/details/83926620
https://www.jianshu.com/p/54f99a30feda

WMA

  WMA的全称是WindowsMedia Audio,是微软力推的一种音频格式。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18,生成的文件大小只有相应MP3文件的一半。
WMA与MP3音质和体积上的对比特点,可以总结为:低比特率(<128Kbps)时,WMA体积比MP3小,音质比MP3好;而在高比特率(>128K)时,MP3的音质则比WMA好。
  WMA相对于MP3的最大特点就是有极强的可保护性,可以说,WMA的推出,就是针对MP3没有版权保护的缺点来的。WMA可以通过DRM(Digital Rights Management)方案加入防止拷贝,或者加入限制播放时间和播放次数,甚至是播放机器的限制,可有力地防止盗版。
  补充:128kbps为wma最优压缩比,128kbpswma=192kbps mp3

推荐的库
1 . FFmpeg;

使用场景
支持音频流(Stream)技术,适合在网络上在线播放;
适合安卓;

OGG

  Ogg全称应该是OGGVobis(oggVorbis)是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同的是,它是完全免费、开放和没有专利限制的。OGGVobis有一个很出众的特点,就是支持多声道,随着它的流行,以后用随身听来听DTS编码的多声道作品将不会是梦想。
  Vorbis 是这种音频压缩机制的名字,而Ogg则是一个计划的名字,该计划意图设计一个完全开放性的多媒体系统。目前该计划只实现了OggVorbis这一部分。
  Ogg Vorbis文件的扩展名是。OGG。这种文件的设计格式是非常先进的。现在创建的OGG文件可以在未来的任何播放器上播放,因此,这种文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或播放器。
  补充:目前最好的有损格式之一,MP3部分支持,智能手机装软件部分可以支持,最高比特率500kbps。

推荐的库
1 . FFmpeg;

使用场景
比MP3更加优化了一些,可适用于MP3格式的场景;
适合安卓;

AAC

  AAC实际上是高级音频编码的缩写。AAC是由Fraunhofer IIS-A、杜比和AT&T共同开发的一种音频格式,它是MPEG-2规范的一部分。AAC所采用的运算法则与MP3的运算法则有所不同,AAC通过结合其他的功能来提高编码效率。AAC的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如MP3等)。它还同时支持多达48个音轨、15个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。总之,AAC可以在比MP3文件缩小30%的前提下提供更好的音质。
  补充:目前最好的有损格式之一。有多种编码,faac,nero为常见,比特率最高448kbps。硬件支持方面,高级mp3和现在手机普遍支持。

推荐的库
1 . 原生MediaCodec;
2 . FFmpeg;
3 . AAC LC;
4 . FAAC;
5 . FAAD/FAAD2;

Libfdk_AAC > ffmpeg AAC > libaac > libvo_aacenc

使用场景
使用MP3的地方都可以使用AAC;
适合安卓;

特点
  优点:相对于mp3,AAC格式的音质更佳,文件更小;
  缺点:AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在“本质上”的差距。加之,目前传输速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC头上“小巧”的光环不复存在了;

MP3pro

  Mp3Pro是Mp3编码格式的升级版本。简单的说,就是分两层编码,在MP3的基础上,再与另外一种技术(SB频段复制技术)混合编码。
  在保持相同的音质下同样可以把声音文件的文件量压缩到原有MP3格式的一半大小。而且可以在基本不改变文件大小的情况下改善原先的MP3音乐音质。它能够在用较低的比特率压缩音频文件的情况下,最大程度地保持压缩前的音质。这种格式在低位率的时候,压缩效率非常高,所以在一般音质情况下,同位率的MP3pro的体积要比MP3甚至WMA都小得多,而音质却是三者中最好的。
  MP3pro可以实现完全的兼容性。经过mp3Pro压缩的文件,扩展名仍旧是。mp3。可以在老的mp3播放器上播放。老的mp3文件可以在新的mp3pro播放器上进行播放。实现了该公司所谓的“向前向后兼容”。
  从技术上讲,MP3pro是一种非常优秀的编码方式,但是它高昂的专利费,使它没有真正流行起来。

无损压缩

  对于我们最常说的“无损音频”来说,一般都是指传统CD格式中的16bit/44.1kHz采样率的文件格式,而知所以称为无损压缩,也是因为其包含了20Hz-22.05kHz这个完全覆盖人耳可闻范围的频响频率而得名。

WAV

  WAV格式是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持。WAV格式是以RIFF格式为标准的。RIFF是英文ResourceInterchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。
  WAV格式支持许多压缩算法,支持多种音频位数、采样频率和声道,采用44.1kHz的采样频率,16位量化位数,因此WAV的音质与CD相差无几,但WAV格式对存储空间需求太大不便于交流和传播。
  补充:WAV属于无损音乐格式,缺点:体积十分大!

推荐的库
1 . 直接在PCM基础上加字节转换为WAV;

使用场景
用于保存WINDOWS平台的音频信息资源,WINDOWS平台及其应用程序支持;广泛用于PC机上;
适合安卓;

APE

  APE是目前流行的、由Monkey'sAudio出品的一种数字音乐文件格式,它出现得比FLAC早,而且名气也比FLAC大。与MP3、OGG这类有损压缩方式不同,APE是目前世界上惟一得到公认的音频无损压缩格式,也就是说当您将从音频CD上读取的音频数据文件压缩成APE格式后,还可以再将APE格式的文件还原,而还原后的音乐文件与压缩前一模一样,没有任何损失。而现在越来越多的人将它在网络传播,因为被压缩后的APE文件容量要比WAV源文件小一半多,可以节约传输所用的时间,也更方便传播!由于APE的采样率高达800kbps~1400kbps,接近于音乐CD的1411.2kbps,远远高于MP3的128kbps,因此它在压缩后的音质和源文件音质几乎毫无差异APE的这些特点,都是其他无损压缩格式所争相效仿的。
  APE既可以保持音乐信号的无损,又可以以比WAV高得多的压缩率(接近2:1)压缩WAV文件,而且可以无须解压而直接播放。压缩后的APE文件只有原文件一半左右大小。补充:为无损压缩格式,较flac而言,他体积较小。编码速度偏慢。

使用场景
数字音乐文件格式之一,目前只能把音乐CD中的曲目和未压缩的WAV文件转换成APE格式,MP3文件还无法转换为APE格式;
没在MediaFormat类中找到APE格式,应该是不适合安卓的;

FLAC

  FLAC即是FreeLossless Audio Codec的缩写,全称应该叫OGGFLAC,中文可解为无损音频压缩编码。它是OGG计划的一部分,当然也就是开源、免费的了,这也难怪它这么快就得到了多家MP3厂商的支持。
  FLAC是一套著名的自由音频压缩编码,其特点是无损压缩。FLAC压缩比可以达到2:1,对于无损压缩来说,这已经是相当高的比例了;而且它解码速度快,只需进行整数运算即可完成整个解码过程,对CPU的运算能力要求很低,所以普通的随身听,都可以轻松实现实时解码。
  不同于其他有损压缩编码如MP3 及AAC,它不会破坏任何原有的音频资讯,所以可以还原音乐光盘音质。。简而言之,FLAC与MP3相仿,但是是无损压缩的,也就是说音频以FLAC方式压缩不会丢失任何信息。这种压缩与Zip的方式类似,但是FLAC将给你更大的压缩比率,因为FLAC是专门针对音频的特点设计的压缩方式,并且你可以使用播放器播放FLAC压缩的文件,就象通常播放你的MP3文件一样。
  补充:为无损格式,较ape而言,他体积大点,但是兼容性好,编码速度快,播放器支持更广;
  FLAC是专门针对PCM音频的特点设计的压缩方式;

推荐的库
1 . 原生MediaCodec;

使用场景
现在它已被很多软件及硬件音频产品所支持
适合安卓;

比较

压缩比比较

  aac>ogg>mp3(wma)>ape>flac>wav(同一音源条件下)

  mp3和wma以192kbps为分界线,192kbps以上mp3好,192kbps以下wma好。

音质比较

  wav=flac=ape>aac>ogg>mp3>wma

硬件支持比较

  MP3播放器:mp3>wma>wav>flac>apeaac ogg

  手机:mp3>wma>aacwav>flac ogg>ape

综合性能

综合音质体积编码率:aac>ogg>flac/ape>mp3>wav、wma