微信语音转mp3 php,微信语音amr转mp3
说下整体思路
1、服务器安装ffmpeg
2、使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用system函数执行即可)
3、在网页端使用HTML5的audio标签来播放mp3文件
下面是操作细节:
一、服务器安装ffmpeg以cenos为例
此处参考:http://my.oschina.NET/ethan09/blog/372435
需要特别注意的是,在下面的方法中,amrnb和amrwb的安装到make环节会请求3gp的一个网址,一般是请求不到的,可以用crtl+c取消他的进程,并且这两个不需要也是可以转换格式的
接到需求要在Linux环境下将amr转换为mp3,windows下直接使用第三方jar包封装的exe方法即可,但不支持Linux,上网爬完资料说是用ffmpeg加上amr插件可以实现,根据教程尝试了一下:
1. 首先安装系统编译环境
yum install -y automake autoconf libtool gcc gcc-c++ #CentOS
2. 编译所需源码包
#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音频解码
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支持
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
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
#加载配置
#最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。
ldconfig
3.使用方法
ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr #MP3转换AMR
ffmpeg -i 1.amr 1.mp3 #AMR转换MP3
附录:
附录1. ffmpeg默认安装目录为“/usr/local/lib”,有些64位系统下软件目录则为“/usr/lib64”,编译过程中可能会出现
“ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory”等类似的错误,解决办法是建立软链接:
# ln -s /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0
附录2. 如果出现以下提示:ffmpeg: error while loading shared libraries: libavdevice.so.54: cannot open shared object file: No such file or directory
可以通过如下方式查看ffmpeg的动态链接库哪些没有找到:
ldd `which ffmpeg`
libavdevice.so.54 => not found
libavfilter.so.3 => not found
libavformat.so.54 => not found
libavcodec.so.54 => not found
libswresample.so.0 => not found
libswscale.so.2 => not found
libavutil.so.51 => not found
libm.so.6 => /lib64/libm.so.6 (0x00002ab7c0eb6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ab7c100b000)
libc.so.6 => /lib64/libc.so.6 (0x00002ab7c1125000)
/lib64/ld-linux-x86-64.so.2 (0x00002ab7c0d9a000)
#如果类似于上面的输出内容,查找以上类库,会发现全部在/usr/local/lib/下
find /usr/local/lib/ | grep -E "libavdevice.so.54|libavfilter.so.3|libavcodec.so.54"
/usr/local/lib/libavfilter.so.3.17.100
/usr/local/lib/libavcodec.so.54.59.100
/usr/local/lib/libavdevice.so.54
/usr/local/lib/libavcodec.so.54
/usr/local/lib/libavfilter.so.3
/usr/local/lib/libavdevice.so.54.2.101
#查看链接库配置文件
more /etc/ld.so.conf | grep /usr/local/lib
#如果不包含的话,需要编辑此文添加:
vi /etc/ld.so.conf
/usr/local/lib
/usr/local/lib64
#运行配置命令
ldconfig
关于ffmpeg简介:
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。其官方网址为:http://www.ffmpeg.org
最后,部分内容参照http://linux.it.net.cn/e/Linuxit/2014/0828/3980.html
二、使用ffmpeg指令
在进行完第一步后,可以使用ffmpeg --help来看看是否正确安装,如果没有的话,请检查是不是忘了make install
使用转换的指令是ffmpeg -i 1.amr 2.mp3
会把1.amr转换为2.mp3
三、使用php来执行linux指令ffmpeg
对文件的转换当然不能是自己不停的去服务器里面运行linux指令的,所以我们采用php执行linux指令的办法来处理amr文件
使用system函数来执行
[php] view plain copy
01.$amr = './'.$vo['voice'];
02.$mp3 = $amr.'.mp3';
03.
04.if(file_exists($mp3) == true){
05. // exit('无需转换');
06.}else{
07. $command = "/usr/local/bin/ffmpeg -i $amr $mp3";
08. system($command,$error);
09.}
仔细看看代码,我这边是用的/usr/local/bin/ffmpeg来执行的,因为我使用php不能直接运行ffmpeg指令,如果你的指令不在这个目录下,可以使用locate或者find来查找ffmpeg所在目录
是不是很简单呢
上面资料是上面找到的复制过来的 只做为参考资料 不做解决方案用!
附近有一公寓免水费不免电费,后来有一理科哥们在那研究水力发电……听说被房东吊打了三天三夜。
神评:没错啊,姿势改变命运!
老公是 苦逼 出租 司机,每天回家固定上交两百元,每次收车回家吃饭的时候,一边给钱一边说:老板娘,给我煮碗两百块钱的面条~
微信语音转mp3 php,微信语音amr转mp3相关推荐
- amr 转mp3 java_JAVA 音频转换AMR 转MP3,OS,Linux cent os 7
场景 近期在做微信开发时,需要获取用户发给公众服务号的语音留言.而从微信服务端下载来的语音格式却是amr的格式,同样的你手机录音.Android语音等也都是生成amr格式文件.但当你想在web页面去播 ...
- linux java amr转mp3,微信语音Linux-centos下ffmpeg安装如何amr转mp3播放
以前微信语音只能微信浏览器里播放,而且只有3天有效期,后来找到解决办法,安装ffmpeg做格式转化,以前网上找到一篇教程,写的很详细,照着做就行,今天花了很多时间大海捞针方式搜到了: https:// ...
- 微信语音保存到本地服务器,文件格式由amr转mp3
最近开发的微信项目里面需要用到微信语音的功能,结合微信开发文档的网页js接口,语音可以在网页上生成并上传到微信服务器,但是微信服务器保存的时间有限,还是保存到自己的本地服务器比较稳当,这样需要把语音文 ...
- java实现windows下amr转换为mp3(可实现微信语音和qq语音转换)
最近做一个项目需要将微信的语音文件放在页面进行播放,查了好多资料发现,web页面直接播放并没有一个好的解决方案,于是就想到了先将amr文件转换成易于在页面播放的mp3文件,然后在进行播放,现在将amr ...
- 微信语音amr转mp3
参考:https://www.cnblogs.com/LittleBai/p/5924416.html 转换方法一. 在线转:https://www.media.io/zh/ 转换方法二. 命令行操作 ...
- java微信录音arm转mp3_微信语音amr转mp3
参考:https://www.cnblogs.com/LittleBai/p/5924416.html 转换方法一. 转换方法二. 命令行操作(基于fmpeg): ffmpeg -i G:\1.amr ...
- vue 微信录音倒计时_vue的微信语音功能,录音+对接口返回amr音频播放-Go语言中文社区...
vue的微信语音功能,录音+对接口返回amr音频播放 最近的新项目需要调用微信的录音功能,但是后台又不给音频转码,无奈之下就踏上了研究前端音频编码器这东西. 参考的GitHub仓库--Recorder ...
- android 微信播放语音文件,如何将微信语音导出为MP3音频文件-Android平台
本文对于安卓用户,提供了一种相对快捷的方法. ---------以下为图文,请在本文最后点击"阅读原文"查看视频教程-------- ios平台下,导出微信语音只需要两个步骤:使用 ...
- Kotlin高仿微信-第11篇-单聊-语音
Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...
- 【微信开发】上传用户语音 并转码 分享
好久没有写博客了,这段时间遇到了很多问题都没有记录下来 今天刚好上线了一个小活动,期间遇到一些比较折腾的问题,撑着有时间记录一下 需求 临近圣诞节,运营组想了一个活动来拉新,活动的大概内容是这样的; ...
最新文章
- 【python图像处理】图像的缩放、旋转与翻转
- 0322 第一天 心得体会
- 4.windows环境下如何安装memcached教程(转载+自己整理)
- Java 如何优雅的导出 Excel
- 支持10秒自毁的新芯片
- 关于发送H264 sdp里的
- 快速测试UTF8编码的文件是不是加了BOM,不限PHP
- 设置只允许在微信里打开,做一个服务赞赏评价系统,提升服务质量,让员工更积极参与工作
- 联想杀毒显示 你的计算机有风险,都在说联想电脑管家,那我们也来看看这联想杀毒是怎么一回事-电脑管家怎么样...
- C#.NET生成条形码(Code39和Code128)
- android中base64编码解码,Andorid自带的Base64编解码表
- 网络协议分析(第二版)期末复习资料一
- print()和println()的区别
- 记一个ie兼容apos
- hystrix熔断器之配置
- 11、OpenGL - 混合(颜色混合)
- 卷积网络中的通道(Channel)和特征图
- xmlhttp方法抓取下一页问题
- 全球五大违背力学的建筑背后的仿真计算与监测技术
- 使用Java实现文档的下载(Excel,Word文档等)