前言
本文讲解PCM裸流数据的存储格式。
本文PCM音频参数声道数: 2
采样位数: little endian signed 16 bits,
小端有符号字 = short,表示范围 -32768~32767
采样频率: 44100Hz
PCM数据存储格式(小端有符号字)
UltraEdit下查看实际的16进制数据(小端有符号字)
注意:在notepad++下查看到的16进制数据不对,暂时来找到原因。
点击图片可放大看。
左右声道分离c语言程序//gcc -o split_PCM_channle split_PCM_channle.c
//./split_PCM_channle
#include
#include
int simplest_pcm16le_split(char *url){
FILE *fp=fopen(url,"rb+");
FILE *fp1=fopen("output_l.pcm","wb+");
FILE *fp2=fopen("output_r.pcm","wb+");
unsigned char *sample=(unsigned char *)malloc(4);
while(!feof(fp)){
fread(sample,1,4,fp);
//L
fwrite(sample,1,2,fp1);
//R
fwrite(sample+2,1,2,fp2);
}
free(sample);
fclose(fp);
fclose(fp1);
fclose(fp2);
return 0;
}
void main (void)
{
char *url = "./single_sine.pcm";
simplest_pcm16le_split(url);
}
参考资料