说下整体思路

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. 【FPGA】Buffer专题介绍(二)
  2. python评语生成_如何评价生成模型框架 ZhuSuan?
  3. 高维、相依和不完全数据的统计分析(二)
  4. 浏览器用xpath获取一直为空
  5. Mybatis原理初探
  6. Python - @property 方法变属性
  7. 面试官:你不懂六大设计原则,回去等通知吧!
  8. LeetCode 1533. Find the Index of the Large Integer(二分查找)
  9. gn fast-gn_GN的完整形式是什么?
  10. 上海浦东新区公共租赁住房申请攻略
  11. opencv-api fitEllipse
  12. 我的编程认知:多思考、多编码、多测试
  13. 从 RNN 到 LSTM (Short-Term Memory)
  14. 自己动手写个狗屁不通文章生成器!输入标题即可生成文章!
  15. picpick截屏软件脱壳
  16. 详解Dell EMC发布的PowerMax存储和R系列计算系统
  17. 二分法的复杂度O(log2n)是什么意思
  18. 利用平台系统运营店铺五大法则
  19. ipad已有2周未备份。ipad插入电源、被锁定且接入Wi-Fi时会进行备份
  20. ActiveMQ的传输协议

热门文章

  1. RANSAC算法与原理(二)
  2. 批量将多个 Word 文档合并成一个 Word 文件
  3. 关于我在《大话5G》这本书里学到了什么——5G和物联网不得不说的关系
  4. 大话移动通信(第2版)!(文末赠书福利)
  5. dx逆向建模步骤_产品温度的逆向建模的系统和方法与流程
  6. VC++LNK2005错误:already defined in *.obj
  7. error:LNK2005
  8. sdn的用处_什么是SDN?SDN有什么优势?
  9. Java运行时常量池
  10. 做短视频自媒体,常用工具和素材网站分享,新手小白收藏抓紧行动