一、基本概念
PCM(Pulse Code Modulation)也被称为脉码编码调制,PCM中的声音数据没有被压缩,是原始的音频采样数据。
通常说的44100HZ 16bit,表示采样率是44100HZ,位深是16bit,也即每秒钟有 44100 次采样,每声道每个采样数据用 16 位(2字节)记录。很显然,用16位记录数据比用8位能记录的数据范围更大,更精细,也就听起来更逼真。
双声道通常排列方式:LRLRLR....,这是交错排列方式,比较常见。也有LLLLLL.......RRRRRR.....,这种是平铺方式,这种比较少见。
超过8位,存储时还会有 little endian 和 big endian 的问题。一般 wav 文件是按 little endian 方式。比如存储16位的数据0x1234,按小端存储并且地址从左到右增高,那么存储的时候是 0x34 0x12 这样。
位深为8位,取值范围:0 - 255
位深为16位,取值范围:-32768 - 32767
二、ffplay播放pcm命令
ffplay -f f32le -ac 2 -ar 48000 ./sintel.pcm
其中f32le是pcm格式,2是声道数,48000是采样率。
多声道需要交错存储,ffplay才能正确播放。