微信公众号开发——通过ffmpeg解决amr文件无法播放问题

今天刚好碰到个需求,要在微信浏览器中实现录音,并在其他页面上播放。录音功能本身是JS SDK的功能,倒没啥问题,然而录音的文件保存下来是amr格式,而IOS的浏览器没法播放amr(据说微信浏览器的video标签可以播放,但没试成功),只能考虑在上传后自动将amr转换成mp3。问题本身不大,但是根据搜索的文章操作时却遇到不少问题,故记录下来。

服务端系统是CentOS,语言是PHP,实现这个过程主要就两步:

  1. 安装ffmpeg(确保ffmpegffprobe命令可用)
  2. PHP通过php-ffmpeg实现amr转换成mp3;

安装ffmpeg

CentOS上,最简单的办法是去官网(http://www.ffmpeg.com/)上下载最新的静态版本(Linux Static Builds),解压后即可使用。

如果通过yum安装会发现版本过低,转换不成功;而自己编译那就有得折腾了。

不论通过什么方式,安装成功后,都应该找个amr文件,测试下是否能转换成功:

$ffmpeg -i test.amr test.mp3

实现amr转换成mp3

需求比较简单,可以自己调用exec命令实现转换,也可以使用第三方库完成转换,我使用的是PHP-FFMpeg(https://github.com/PHP-FFMpeg/PHP-FFMpeg)这个库。

安装与引用包是Composer的基础知识,也是现代WEB开发的基础,这里就不展开了。

一切就绪后,通过以下的例子代码就能完成amrmp3的转换:

$ffmpeg = FFMpeg\FFMpeg::create();
$amr = $ffmpeg->open("test.amr");
$audio_format = new FFMpeg\Format\Audio\Mp3();
$amr->save($audio_format, "test.mp3");

参考

CentOS下yum安装ffmpeg(安装的版本过低,没法转换)

转载于:https://www.cnblogs.com/pheye/p/6876279.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值