原始PCM录制与播放

arecord 和 aplay 使用说明

来源:https://blog.csdn.net/liupin2008/article/details/124347278

arecord和aplay是alsa-utils一部分,我们在Linux系统下进行音频开发时经常使用,非常方便。
先简单介绍一下。

arecord 采集原始音频
arecord -r 8000 -t raw -c 1 -f S16_BE ./test

aplay 播放原始音频
aplay -t raw -r 8000 -f S16_BE -c 1 ./test

参数说明:
-r 采样频率 8000 48000 44100等
-t 录音文件类型 voc, wav, raw or au
-c 声道数,1:单声道;2:双声道
-f 采样格式,S16:16位; BE: 大端 ; LE: 小端
最后是 文件路径

注意:播放异常时,检查采集时的参数是否和播放时的参数一致。
————————————————

总结

总结一下,pcm原始数据,录制时使用什么参数,播放时一定要设置一样的参数。不然,听到的就是一团噪音。
比如我的PCM文件,录制时使用参数:频率48000Hz,S16_LE。但是播放时使用命令:

aplay pcm_001.pcm

这个命令就是使用aplay默认参数播放pcm_001.pcm,而默认参数是:Unsigned 8 bit, Rate 8000 Hz, Mono

这样显然听到的就是一团的噪音。

应该使用如下命令:

aplay -t raw -r 48000 -f S16_LE -c 1 ./pcm_001.pcm

类比

1.视频采集时的原始数据yuv,也有不同的参数设置比如YUV420,YUV422,YUV444,还有RGB16,RGB24,RGB32,还有不同宽高的设置,等等。播放时同样需要设置,播放器不知道这个视频文件的宽高,数据排列形式,而且参数没有设置对,就会出现花屏。
如果已经封装过的格式,比如MP4,MKV,这些就是已经把宽高,编码格式都写在文件的开头,播放器就会根据文件头的参数设置编码器和解码器,展示的宽高,音频的参数。

2.图片的原始数据raw,各大相机厂商有不同的格式,比如索尼的ARW,佳能CR2,索尼有自己的软件可以打开这种文件,佳能也有。但是PS的camera raw集成了各家厂商的软件,全部都可以打开并且显示出来。这些原始数据,其实就是二进制数据的集合,各家厂商在文件开头写入了设备的参数,比如设备型号,光圈,快门这些参数。
如果采用压缩格式JPEG保存照片,由于JPEG是一个公开的图片格式,按照固定的格式储存了宽高参数,所以任意一款图片浏览器都可以打开。

猜你喜欢

转载自blog.csdn.net/u013209189/article/details/127336171