阿里云linux安装ffmpeg支持小程序silk文件转换-续
这是微信开发工具在调试中的录音文件,截图如下:这是使用手机中小程序体验版,或者发布版本中的录音文件,截图如下:如果参考 阿里云linux安装ffmpeg支持小程序silk文件转换 的方法,可以转换开发工具录制的 silk文件。但我们的程序最终需要发布,体验版以及发布版,对于其录制的silk文件,我们还必须经过解码,解码后形成pc
·
这是微信开发工具在调试中的录音文件,截图如下:
这是使用手机中小程序体验版,或者发布版本中的录音文件,截图如下:
如果参考 阿里云linux安装ffmpeg支持小程序silk文件转换 的方法,可以转换开发工具录制的 silk文件。
但我们的程序最终需要发布,体验版以及发布版,对于其录制的silk文件,我们还必须经过解码,解码后形成pcm文件,然后再将pcm文件转换成mp3文件。
在Linux下
wget https://github.com/kn007/silk-v3-decoder/archive/master.zip
unzip master.zip
得到silk-v3-decoder-master文件夹
然后编译解码器
cd silk-v3-decoder-master
cd silk
make
make之后,会在 silk-v3-decoder-master/silk/文件下生成 decoder 执行文件
尝试调用,将测试的silk文件拷贝倒解码程序文件夹,使用文件夹里面的converter.sh对文件进行转换
cp /bryan/test.silk /bryan/sw/silk-v3-decoder-master/test.silk
sh converter.sh test.slk mp3
最终在解码器目录下转换得到 test.mp3
注意: converter.sh会尝试寻找ffmpeg,所以必须先安装ffmpeg,具体请参考 阿里云linux安装ffmpeg支持小程序silk文件转换 。再转换过程中首先转换成pcm,然后再将pcm转换成mp3。
在PHP中我们可以这样实现:
$v_cmd = "";
//change to pcm
if(如果是windows){
$v_cmd = $pSilkDecodeWindows." ".$v_silk_file_path." ".$v_pcm_file_path." -quiet";
}else{//否则是Linux
$v_cmd = $pSilkDecodeLinux." ".$v_silk_file_path." ".$v_pcm_file_path." -quiet";
}
exec($v_cmd);
//change to mp3
if(如果是windows){
$v_cmd = $pFfmpegPathWindows." -y -f s16le -ar 24000 -ac 1 -i ".$v_pcm_file_path." ".$v_mp3_file_path;
}else{//否则是Linux
$v_cmd = $pFfmpegPathLinux." -y -f s16le -ar 24000 -ac 1 -i ".$v_pcm_file_path." ".$v_mp3_file_path;
}
exec($v_cmd);
//删除pcm
if(file_exists($v_pcm_file_path))
{
unlink($v_pcm_file_path);
}
//删除silk
if(file_exists($v_silk_file_path))
{
unlink($v_silk_file_path);
}
更多推荐
已为社区贡献2条内容
所有评论(0)