视频开发iOS Developer程序员

AAC和MP3在码率压缩上的一些事

2017-08-11  本文已影响491人  小追兵

最近公司App用户反馈,我们使用的mp3文件太耗流量。显然是我们mp3的体积太大。 怎么处理?

下面我们看一个表格,这个表示对比,这是我对同一音频,进行压缩对比后的结果。


文件类型 格式 码率 大小 音质变化程度
原文件 mp3 52.9M 不明显
第三方 mp3 192kbps 31.7M 不明显
测试1 mp3 192kbps 31.8M 不明显
测试2 acc 192kbps 32.1M 不明显
测试3 mp3 128kbps 21.2M 不明显
测试4 acc 128kbps 21.5M 不明显
测试5 mp3 96kbps 15.9M 不明显
测试6 acc 96kbps 16.3M 不明显
测试7 mp3 64kbps 10.7M 高音消失,高音稍微变化
测试8 acc 64kbps 11.0M 稍微有变化,可以忽略
测试9 mp3 32kbps 5.4M 音调色音调变化明显
测试10 acc 32kbps 5.50M 音质变化可听出
测试11 mp3 20kbps 3.4M 声音变化明显,声音变低沉
测试12 acc 20kbps 3.50M 音质相对变差,稍有影响

  1. 现在我们讲解下表格,有表格可以看出,我们现场录制的22分钟原文件的mp3大小是52.9M,这个体积已经很大了。

  2. 第三方压缩提供个我们线上的mp3大小是31.7M。(ps:其实也不小)

  3. 那我自己用软件压缩,不同的码率,压缩后,体积依次减小。

  4. 现在可以看出,我们52.9M的文件可以被压缩到3.4M

那么问题来了,我们为什么不直接压缩到3.4M呢,这样体积小,加载快,省流量,省时间。其实问题很简单,小体积,音质差啊,不能让用户听音质太差的音频啊。那什么是合理区间呢?

下面我们看看mp3压缩后,图谱变化:


看完了mp3的,我们来看看aac的把,

那么为什么回事这样的,这个与MP3和AAC的压缩算法有关,压缩,一定是要失去一部分信息的,也就是我们把192kbps的信息在单位时间内压缩到20kbps,也就是我们所说的码率懂192降到了20,所以我们文件的体积从30M减少到了3M多,码率降低10倍,体积也降低10倍。码率降低一定是会失去音频写的的信息的,但是因为压缩算法不同,抛弃的信息就不同。那aac在压缩10倍后,音质是不是没有变差,不是的,音质也差了,但是相比MP3不是那么明显。如果用耳朵去听,64kbps的AAC和92kbps的音质区别,很难分辨出来,或者说分辨不出。

那么如果你是听音乐,为了更好的听觉体验,建议192kbps-128kbps的文件,当然再大点也没问题。这样可以尽量保存完整的低音和高音信息,可以带来更好的听觉体验。不建议使用128kbps以下的MP3或者AAC,或丢失音乐信息。

那么演讲或者课程类的语言文件呢?这个要看人所能听到的频率范围。那一个人能听到的频率范围是多少呢?

28岁时,22——17000Hz
40岁时,25——14000Hz
60岁时,35——11000Hz

可以看出一个人能听到的频率是在:20 ---20KHZ,所以我们10kHz左右的信息是不可以失去的,如果大量失去,我们就能感知到。

结论

我们说了这么多,总要有个结论吧,对于我们APP而言,是在线语音课程,所以我们两者都要兼顾,要文件尽可能小,并且要保真音质不会发生明显变化,我们确定选择64kbps的AAC文件作为我们播放的格式。这个参数下,我们的音频课程音质变化不明显,音质可以兼顾到,提交从50M的原文件被压缩到了10M,相当于2分钟的音乐用1M的大小,这样大大节省了用户的流量。并最大可能保证音质。(ps:如果你们觉得只要音质不保险,那96kbps,最够保险了;如果是MP3,那就用96kbps吧,如果质量优先,体积第二,那就128kbps吧)

上一篇 下一篇

猜你喜欢

热点阅读