说下整体思路

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相关推荐

  1. amr 转mp3 java_JAVA 音频转换AMR 转MP3,OS,Linux cent os 7

    场景 近期在做微信开发时,需要获取用户发给公众服务号的语音留言.而从微信服务端下载来的语音格式却是amr的格式,同样的你手机录音.Android语音等也都是生成amr格式文件.但当你想在web页面去播 ...

  2. linux java amr转mp3,微信语音Linux-centos下ffmpeg安装如何amr转mp3播放

    以前微信语音只能微信浏览器里播放,而且只有3天有效期,后来找到解决办法,安装ffmpeg做格式转化,以前网上找到一篇教程,写的很详细,照着做就行,今天花了很多时间大海捞针方式搜到了: https:// ...

  3. 微信语音保存到本地服务器,文件格式由amr转mp3

    最近开发的微信项目里面需要用到微信语音的功能,结合微信开发文档的网页js接口,语音可以在网页上生成并上传到微信服务器,但是微信服务器保存的时间有限,还是保存到自己的本地服务器比较稳当,这样需要把语音文 ...

  4. java实现windows下amr转换为mp3(可实现微信语音和qq语音转换)

    最近做一个项目需要将微信的语音文件放在页面进行播放,查了好多资料发现,web页面直接播放并没有一个好的解决方案,于是就想到了先将amr文件转换成易于在页面播放的mp3文件,然后在进行播放,现在将amr ...

  5. 微信语音amr转mp3

    参考:https://www.cnblogs.com/LittleBai/p/5924416.html 转换方法一. 在线转:https://www.media.io/zh/ 转换方法二. 命令行操作 ...

  6. java微信录音arm转mp3_微信语音amr转mp3

    参考:https://www.cnblogs.com/LittleBai/p/5924416.html 转换方法一. 转换方法二. 命令行操作(基于fmpeg): ffmpeg -i G:\1.amr ...

  7. vue 微信录音倒计时_vue的微信语音功能,录音+对接口返回amr音频播放-Go语言中文社区...

    vue的微信语音功能,录音+对接口返回amr音频播放 最近的新项目需要调用微信的录音功能,但是后台又不给音频转码,无奈之下就踏上了研究前端音频编码器这东西. 参考的GitHub仓库--Recorder ...

  8. android 微信播放语音文件,如何将微信语音导出为MP3音频文件-Android平台

    本文对于安卓用户,提供了一种相对快捷的方法. ---------以下为图文,请在本文最后点击"阅读原文"查看视频教程-------- ios平台下,导出微信语音只需要两个步骤:使用 ...

  9. Kotlin高仿微信-第11篇-单聊-语音

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  10. 【微信开发】上传用户语音 并转码 分享

    好久没有写博客了,这段时间遇到了很多问题都没有记录下来 今天刚好上线了一个小活动,期间遇到一些比较折腾的问题,撑着有时间记录一下 需求 临近圣诞节,运营组想了一个活动来拉新,活动的大概内容是这样的; ...

最新文章

  1. 【python图像处理】图像的缩放、旋转与翻转
  2. 0322 第一天 心得体会
  3. 4.windows环境下如何安装memcached教程(转载+自己整理)
  4. Java 如何优雅的导出 Excel
  5. 支持10秒自毁的新芯片
  6. 关于发送H264 sdp里的
  7. 快速测试UTF8编码的文件是不是加了BOM,不限PHP
  8. 设置只允许在微信里打开,做一个服务赞赏评价系统,提升服务质量,让员工更积极参与工作
  9. 联想杀毒显示 你的计算机有风险,都在说联想电脑管家,那我们也来看看这联想杀毒是怎么一回事-电脑管家怎么样...
  10. C#.NET生成条形码(Code39和Code128)
  11. android中base64编码解码,Andorid自带的Base64编解码表
  12. 网络协议分析(第二版)期末复习资料一
  13. print()和println()的区别
  14. 记一个ie兼容apos
  15. hystrix熔断器之配置
  16. 11、OpenGL - 混合(颜色混合)
  17. 卷积网络中的通道(Channel)和特征图
  18. xmlhttp方法抓取下一页问题
  19. 全球五大违背力学的建筑背后的仿真计算与监测技术
  20. 使用Java实现文档的下载(Excel,Word文档等)

热门文章

  1. 图书借阅系统UML建模
  2. 最新CISP模拟考试题库及答案(一)
  3. sentaurus的SDE仿真基本流程
  4. 西门子V20变频器Modbus通信的配置和报文
  5. linux开启远程ssh服务器配置,配置Linux服务器SSH远程密钥登录
  6. LeetCode_69(x 的平方根 )
  7. C/C++编程笔记:指针篇!从内存理解指针,让你完全搞懂指针
  8. Paper pass使用方法总结,毕业论文查重攻略
  9. 【傻瓜教程】手把手教你安装pip
  10. 【洛谷试炼场】普及练习场——贪心