利用FFmpeg将pcm文件转成wav文件

现在需要利用cool edit对一批pcm音频文件进行分析。由于没有相关信息指定音频的采样率,信道数和精度,所以cool edit在打开一个pcm的时候需要让我们指定相关参数。当需要分析的pcm非常多时,每次都需要指定相关参数就显得非常麻烦。我们可以给pcm文件添加一个wav文件头来指定相关参数,从而无需每次打开进行设置。
给原始的pcm数据添加wav头不是什么麻烦事,我们完全可以写一个c程序实现这个功能,但是针对这个简单需求写一大段代码实在没有必要,因为我们可以用现成的FFmpeg命令实现。FFmpeg可以实现视频中提取音频、不同音频格式之间的转换等功能,非常方便。但是和MP3转wav等有文件头的音频之间转换不同,pcm数据不包含文件头,我们需要在转换的时候指定pcm数据的格式,例如采样率,分辨率和大小端等。
处理的脚本pcm2wav.sh如下:

#!/bin/sh
find $1 -name "*.pcm" >list

for file in `cat list`; do
    echo $file
    wav_name=`echo $file|cut -d'.' -f1`;
    echo $wav_name.wav

    ffmpeg  -f s16le -v 8 -y -ar 16000 -ac 1 -i $file  "$wav_name.wav"
done

rm -f list

由于有很多pcm文件,而且不都在一个目录下,我们首先采用find命令生成所有pcm文件的列表,然后通过读取列表对每一首pcm文件进行处理。列表中每一个条目后缀都是.pcm,我们利用cut命令截取出后缀之前的部分,然后再补上“.wav”生成新的文件名。之后就是调用FFmpeg命令将pcm转成wav。-f选项就指定了原始pcm的格式为:16位精度小端模式录制的数据,–ar和-ac放在-i之前,表示pcm音频的格式为16k采样率单声道。

  • 3
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:Age of Ai 设计师:meimeiellie 返回首页
评论

打赏作者

yutianzuijin

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值