这几天做开发寻思给自己的小程序添加一个录音的功能觉得没啥难度以为调调接口就能好了,万万没想到万恶的微信小程序接口返回的录音音频格式竟然是silk格式的 , 微信接口是amr格式的 , 由于之前做过amr转mp3的功能所以没放在心上然而差不多花了我两天的时间才成功的把silk音频文件转换成mp3格式的.话不多说看问题描述以及详细的教程:
描述:silk音频文件转换mp3
服务器组合1:winServer+php+apache
服务器组合2:winServar+php+iis
由于我的服务器是winServer主要讲前两个 ,linux的话网上也有很多教程可以自行百度
silk转换win思路:php执行exec执行外部程序或外部指令调用cmd命令利用扩展插件转换成mp3
silk转换linux思路:php执行exec执行外部程序或外部指令调用shell命令利用扩展插件转换成mp3
这里借用了kn007大神的工具提取了两个exe进行转换
下载插件的话可以去kn007的博客自己下载, 毕竟我们还是要尊重原创的功劳,它确实是一款特别好的插件,kn007大神也是一个很热心的人如果你遇到了什么问题只要在博客留言他都会尽快回复你的~~~
插件名称:
silk_v3_decoder.exe
ffmpeg.exe
这两个exe文件的描述可以自己去看kn007博客的说明 .
ffmpeg是一个很强大的插件可以把视频或音频文件转换成流数据可操作
贴上代码:
//silk转pcm
$pcm = exec('D:\\wwwroot\\jghy\\wwwroot\\test\\silk_v3_decoder.exe
D:\\wwwroot\\jghy\\wwwroot\\test\\20170208133003_d270bceae0fe.silk
D:\\wwwroot\\jghy\\wwwroot\\test\\20170208133003_d270bceae0fe.pcm',$re,$re1);
//pcm转mp3
$mp3 = exec('D:\\wwwroot\\jghy\\wwwroot\\test\\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i
D:\\wwwroot\\jghy\\wwwroot\\test\\20170208133003_d270bceae0fe.pcm
D:\\wwwroot\\jghy\\wwwroot\\test\\20170208133003_d270bceae0fe.mp3',$re2,$re3);
注:一定要写绝对路径,如果是apche直接写/www/jghy/wwwroot/test/ffmpeg.exe 如遇无法转换请把C:/window/system32/cmd.exe 修改读写权限,当前目录修改读写权限