iOS音频(基础篇)-常用的音频格式

PCM格式

PCM属于编码格式,PCM是经过话筒后直接得到的未经压缩的数据流
数据的大小 = 采样率 * 采样位数 * 声道 * 秒数 / 8
采样率一般是:22K或者是44K
位数一般是:8位或者16位
声道一般是:双声道或者单声道
PCM是一串由多个样本值组成的数据流,本身没有任何头信息或者帧的概念。只有一段PCM数据是没有办法知道它的采样率的信息的。

WAV格式

WAV是封装格式,里面本身可以存放多种编码格式,不过一般都存放PCM数据。
WAV文件是由“WAV文件头”和“WAV文件体”组成。前44字节存放采样率,通道数,数据部分的标识符等头信息,后面就是存放数据部分。很显然WAV的头信息一旦损坏了,播放就会产生问题。

MP3格式

MP3是封装格式,里面存放的数据使用的编码方式为:MPEG1 Layer-3
MP3是由TAG_V2结构体,TAG_V1结构体,和一组Frame组成。头部和尾部的TAG结构体不一定存在,需要判断。中间的Frame,每一个Frame都是由帧头和数据实体组成,帧头记录了MP3的位率,采样率,版本等信息。每个帧之间相互独立,也就是说即使前面的帧损坏了,后面的也可以播放。

AMR格式

AMR是封装格式。
AMR文件包含一个文件头,后面就是一帧一帧的AMR帧。
文件头里面的值就固定值,用于标记文件为AMR文件。
每个帧分为帧头和数据部分,帧头里面包含编发方式和辅助信息。AMR的采样率跟编码方式的不同而不同。

AAC格式

AAC文件可以没有文件头,全部由帧序列组成。
每个帧包含帧头和数据部分。
帧头包含采样率,声道数,帧长度等有点类似MP3格式。

CAF格式

CAF是苹果的一种音频封装格式,与WAV差不多,里面可以存放LPCM,MP3等多种编码方式。

你可能感兴趣的:(iOS音频(基础篇)-常用的音频格式)