PCM裸流数据的16进制格式以及左右声道分离c语言程序

前言

本文讲解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 <stdio.h>
#include <stdlib.h>

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);
}

参考资料

1、PCM数据格式 - FlyingPenguin - 简书
2、视音频数据处理入门:PCM音频采样数据处理 - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值