pcm音频的录制、播放及转换
操作系统 :Windows10_x64
pcm格式为原始音频数据,有时候会遇到需要录制、播放及转换的情况,这里记录下。
一、录制pcm音频
这里演示下使用Audacity进行pcm音频录音的过程。
Audacity的使用可参考这篇文章:Audacity开源音频处理软件使用入门
1)打开Audacity软件;
采样率使用 16000 HZ ,使用单声道。

2)选择导出音频文件;

3)设置导出参数;

保存类型使用:其它无压缩音频文件
数据头格式:RAW(header-less)
编码:Signed 16-bit PCM
至此,音频录制完成。
二、播放pcm音频
pcm音频为原始格式,一般播放器不支持播放,这里演示下使用Audacity软件和ffplay播放的过程。
1、使用Audacity播放
1)打开audacity软件,选择“导入-》原始数据”选项;

2)在弹出的对话框中设置播放参数;
这里选中 16bit PCM 、单声道、1600HZ

3)参数设置完毕,执行导入操作,在界面点击播放即可听取音频;

2、使用ffmpeg播放pcm音频
ffmpeg里面有一个ffplay应用,可播放pcm音频,命令如下:
ffplay.exe -ar 16000 -ac 1 -f s16le -i test1.raw
播放效果如下:

三、pcm文件格式转换
1、使用Audacity进行转换
导入pcm后,可以使用Audacity将音频转换为mp3、wav等格式。

2、使用ffmpeg进行转换
可使用ffmpeg进行pcm音频格式转换,示例如下:
ffmpeg.exe -ar 16000 -ac 1 -f s16le -i test1.raw test1.mp3
ffmpeg.exe -ar 16000 -ac 1 -f s16le -i test1.raw test1.wav
四、pcm编码实时转换
voip通信场景,会遇到需要实时将pcm音频转换为其它编码的情况,这里以pcm编码转pcma为例子进行演示。
主要分为以下两个步骤:
1、将16k pcm转换为8k pcm;
2、将8k pcm转换为pcma编码;
代码从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023033001 获取。
五、资源下载
本文涉及资源可从百度网盘获取:
https://pan.baidu.com/s/1DHjexr8flZCJx29lweyDVQ

关注微信公众号(聊聊博文,文末可扫码)后回复 2023033001 获取。
pcm音频的录制、播放及转换的更多相关文章
- Windows PCM音频捕获与播放实现
在WINDOWS下,音频函数有多种类型,如MCI.多媒体OLE控制.高级音频等,使用方法都比较简单.但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的 ...
- Android OpenSL ES 开发:Android OpenSL 录制 PCM 音频数据
一.实现说明 OpenSL ES的录音要比播放简单一些,在创建好引擎后,再创建好录音接口基本就可以录音了.在这里我们做的是流式录音,所以需要用至少2个buffer来缓存录制好的PCM数据,这里我们可以 ...
- Android音频处理——通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能
Android音频处理--通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能 音频这方面很博大精深,我这里肯定讲不了什么高级的东西,最多也只是一些基础类知识,首先,我们要介绍一下 ...
- AudioRecord 录制播放PCM音频
AudioRecord 与 MediaRecorder 区别 AudioRecord 基于字节流录制,输出的是pcm数据,未进行压缩,直接保存的pcm文件不能被播放器识别播放. 可以对音频文件进行实时 ...
- 使用AudioTrack播放PCM音频数据(android)
众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPl ...
- 使用WindowsAPI实现播放PCM音频的方法
这篇文章主要介绍了使用WindowsAPI实现播放PCM音频的方法,很实用的一个功能,需要的朋友可以参考下 本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAP ...
- 简单实用的PCM音频播放器--沉寂几年之后回归的第一份笔记
---恢复内容开始--- PCM音频网络流播放,至于用处,就不多解释了. 一个简单的类,基于NAudio,一个简单的拼装类,实例化时三个参数,依次是采样率,系统播放设备Index,播放声道,调用Pla ...
- iOS中音频的录制与播放(本地音频文件的播放)
iOS功能开发涉及到音频处理时,最常见的时进行录音,以及音频文件的播放.停止播放等的操作.在开发中还要避免同一个音频文件,或不同音频文件之间的处理,比如说正在播放A音频时,可以停止播放A音频,也可以播 ...
- Android OpenSL ES 开发:OpenSL ES利用SoundTouch实现PCM音频的变速和变调
缘由 OpenSL ES 学习到现在已经知道 OpenSL ES 不仅能播放和录制PCM音频数据,还能改变声音大小.设置左声道或右声道播放.还能变速播放,可谓是播放音频的王者.但是变速有一点不好的就是 ...
- 视音频数据处理入门:PCM音频采样数据处理
===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...
随机推荐
- html input 属性
一:disabled disabled 属性规定应该禁用 input 元素,被禁用的 input 元素,不可编辑,不可复制,不可选择,不能接收焦点,后台也不会接收到传值.设置后文字的颜色会变成灰色.d ...
- Mysql存储类型长度
分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length).SMALL ...
- 在开启hadoop时候报错:localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
此时 ssh localhost也会失败 原因是秘钥没有给自己, 运行ssh-copy-id -i ~/.ssh/id_rsa.pub root@localhost 即可解决.
- vue表格拖拽使用Sortable插件库
1 <template > 2 <el-table 3 row-key="name" 4 :data="tableData" 5 stripe ...
- Qt打印不同颜色
qCritical()<<"\033[47;31m"<<"打印的字符串"<<"\033[m"; \033 ...
- TCP 异常断开连接的过程
Tcp连接正常断开的情况,大家都了解,也就是一端发送Fin报文开启四次挥手,然后 sock 结构销毁,但是我之前很少去追踪 Tcp 在对端宕机,进程 Crash 之后的行为逻辑.前段时间正巧遇到了这样 ...
- vite+vue3使用unplugin-auto-import 无需手动引入api!
近期了解到unplugin-auto-import这个插件 用途是无需每个组件内重复的引入vue vue-router等内置方法 下面举个例子 <script setup> import ...
- FCC 中级算法题 Binary Agents
Binary Agents 传入二进制字符串,翻译成英语句子并返回. 二进制字符串是以空格分隔的. String.charCodeAt() String.fromCharCode() 思路: (1)把 ...
- windows11中使用ctypes运行时出错:AttributeError: function *** not found
最近我在研究用ctypes实现python调用c,按照晚上的教程写下了类似下面的c程序: #include <stdio.h> int nn_test(int num){ printf(& ...
- K8s+Docker 学习笔记系列
学前知识 你需要掌握 Linux 的常用命令.你可以通过Linux 教程 来学习相关命令. Docker应用场景 Web 应用的自动化打包和发布. 自动化测试和持续集成.发布. 在服务型环境中部署和调 ...