iOS音视频开发

iOS音频系列(四)--音频的文件格式和数据格式

2016-08-27  本文已影响3854人  brownfeng

在音频开发中 .WAVs和.MP3有什么不同呢,或者还有的.AAC和.CAF之前又有什么区别呢,这些概念在这篇文章以后应该会有一定的理解.

文件格式和数据格式

如果要理解每一个音频文件,就需要了解它的两个部分的内容:文件格式和数据格式.文件格式又称为音频容器,数据格式又可以认为是编码格式.

文件格式(音频容器)描述的是存储在文件系统的文件的本身,而存储在文件中的音频数据是可以被编码成各种各样的格式的.比如,我们常见的CAF文件是一个文件格式(音频容器),它可以用来存储音频编码格式为MP3,LPCM或者其他的音频编码格式.

音频数据格式(音频编码)

这里先来理解音频编码,在音频相关的内容中,音频编码是最重要的.

iPhone中支持的音频格式如下:

AAC: 被设计用来取代MP3音频编码的.它会压缩原来的声音,因此会减少存储空间.实际中ACC比MP3更好的压缩率.

AMR: AMR是一个编码格式用于压缩语音的音频编码格式.

linear PCM: 是标准的线性脉冲编码,一般是将模拟声音转化成数字信号,这是一个未压缩的音频格式.由于是未压缩的音频编码格式,因此播放时候用这种格式最是最好的选择,但是会占用过多的空间.

MP3: ...

IMA4: ...未压缩

...

该选哪个数据音频格式

首先明确自己有哪些需求:

所以如何选择数据音频格式,这里有些建议:

多种LPCM的变体

对于LPCM音频编码是iPhone中使用非压缩音频数据最好的数据格式.同时,根据具体的存储方式,又有多种变种.音频数据可以存储于大端或者小端模式,用float或者integer存储,也可以使用不同的bit-width存储.

而在iPhone中,使用的最平凡的是:little-endian integer 16bit(或者LEI16 short类型)的格式.在Mac中,使用native-endian(和电脑一致) float point 32bit.如果是在Mac上生成音频数据,那么最好生成合适的格式,再转化成iPhone使用的格式.

文件格式(音频容器)

iPhone支持许多文件格式(音频容器)包括:MPEG-1(.mp3),MPEG-2 ADTS(.aac),AIFF,CAF,WAVE等.但是通常在iPhone中使用的容器格式就CAF,因为它可以用来封装iPhone所支持的所有音频格式.

Bit Rates比特率

比特率是一个和音频数据格式关系密切的概念.

音频文件的比特率就是只单位时间内传送的bit数,单位是bit/s,kbit/s.更高的比特率会导致更大的文件.我们在使用有些音频数据格式例如AAC或者MP3时,需要我们去设置比特率,这个参数与音频格式在压缩过程的压缩率有关.当我们让比特率变低,那么音频质量就会更差.

注释: 1kbit/s = 1000bit/s,而不是1024bit/s

我们需要权衡比特率的大小和声音文件的质量,选择合适的比特率.如果我们使用的是语音声音,那么比特率可以适当低一点.

下面是常见的比特率:

采样率

最后一个专业术语:采样率.可以见前面的文章.

上一篇 下一篇

猜你喜欢

热点阅读