音频转码 php - 微信录音amr转mp3格式 ffmpeg centos 2018-10-18
项目用到录音,前端小伙子采用微信录音。而微信录音文件是amr格式的。前端直接用不了。OK,那现在我们给他转成统一mp3格式吧。
前端和php代码不贴了,其实很简单。就是微信jssdk来录音,然后通过多媒体接口下载录音。参考这篇https://www.cnblogs.com/zhongxia/p/5917163.html
我们通过多媒体下载的录音文件为amr 我们怎么来转成mp3格式呢?
没错,百度了挺多,有七牛云api转,有ffmpeg。我选了ffmpeg,,现在公司初步发展能节约成本就暂时先节约下来吧。(好吧,其实成本也没多少。其实最主要原因不是节约成本,而是公司还没申请下来,所以我没办法注册公司的七牛云账号)
废话不多说。就是安装ffmpeg
很简单--- 参考网站https://www.cnblogs.com/luojianqun/p/6291939.html
首先跟参考网站一样 我也是选centos服务器 这里指出我的安装步骤 跟博主写的来,但是遇到错误的成功解决的步骤
#第一步 yasm:汇编器,新版本的ffmpeg增加了汇编代码
# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# tar -xzvf yasm-1.3.0.tar.gz
# cd yasm-1.3.0
# ./configure
# make
# make install
#第二步 lame:Mp3音频解码 (由于这个文件下载速度慢,到这个网站找到下载源来下载 大家自己度量 (https://sourceforge.net/projects/lame/files/lame/))
# wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
# tar -xzvf lame-3.99.5.tar.gz
# cd lame-3.99.5
# ./configure
# make
# make install
#第三步 amr支持
# wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz
# tar -xzvf opencore-amr-0.1.3.tar.gz
# cd opencore-amr-0.1.3
# ./configure
# make
# make install
#第四步 amrnb支持(这一步有遇到问题,就是./configure时报错 怎么整?报unzip的话 就 “yum install -y unzip zip”,如果报 utillity 就 “yum install -y patch”)
# wget http://www.penguin.cz/~utx/ftp/amr/amrnb-11.0.0.0.tar.bz2
# tar -xjvf amrnb-11.0.0.0.tar.bz2
# cd amrnb-11.0.0.0
# ./configure
# make
# make install
#第五步 amrwb支持
# wget http://www.penguin.cz/~utx/ftp/amr/amrwb-11.0.0.0.tar.bz2
# tar -xjvf amrwb-11.0.0.0.tar.bz2
# cd amrwb-11.0.0.0
# ./configure
# make
# make install
#第六步 安装ffmpeg (./configure 时会卡,稍等一会就好了。安装过程相对有点点慢。)
#wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2
# tar -xjvf ffmpeg-2.5.3.tar.bz2
# cd ffmpeg-2.5.3
# ./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared
# make
# make install
(小提示 大家在安装的时候记得多多 echo $? 如果为0就没问题。具体百度 echo $?的用法)
#加载配置
#第七步 最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。
# ldconfig
然后我测了一下,发现用不了
根据博主的提示
# ldd `which ffmpeg`
发现挺多为空的 我也就没跟着博主去找,因为凭感觉处理方法就在下面
# vi /etc/ld.so.conf 后面追加下面两行
/usr/local/lib
/usr/local/lib64
#再运行一下
#ldconfig
这下我们可以来测试了。我们传一个1.amr格式的文件到 然后我们用下面命令转MP3
# ffmpeg -i 1.amr 1.mp3
OK,正常。。
然后转我们 视频 mov格式要转成mp4呢?
ffmpeg -i 1.MOV -vcodec copy -acodec copy 1.mp4
PHP代码下次再说了。