昨天江苏现场交付的同事老徐联系我,局方需要将交换上播放的语音改由我们的媒体服务器播放。但交换播放的语音文件没有携带wav头,需要我帮助将交换上的语音转出我们媒体服务器上的wav格式的语音。
拿到陌生的语音后格式后,我先用盲猜的方式用cool edit试着用8k 8bit pcma试一下。因为这种格式比较常见。居然成功打开了。
盲猜成功后,我显示用cool edit工具转了几条。但cool edit转换稍显麻烦,于是又想到了老朋友ffmpeg。
采用命令
ffmpeg -f alaw -ar 8000 -ac 1 -i 86800205.001 -map_metadata -1 -fflags +bitexact -acodec pcm_alaw -ac 1 -ar 8000 86800205.wav -y
成功将裸码语音转为了wav格式语音。
下面将这个参数的意义列一下:
-f alaw :pcm a law -ac 1: 1 channel -ar 8000: sample rate 8000 -i 86800205.001:input file 86800205.wav -y:output file
-map_metadata -1 -fflags +bitexact 是将ffmpeg转码默认携带的LIST的数据(artist,genre等)去掉,变成标准的44字节的wav文件头。
-acodec pcm_alaw:转码为pcm_alaw
我发现网上对于ffmpeg裸码转换的介绍比较少,所以在此分享下,希望对网友有所帮助。