说下整体思路

1、服务器安装ffmpeg

2、使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数执行即可)

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. 首先安装系统编译环境

1 yum install -y automake autoconf libtool gcc gcc-c++ #CentOS

2. 编译所需源码包

1 #yasm:汇编器,新版本的ffmpeg增加了汇编代码

2

3 wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

4

5 tar -xzvf yasm-1.3.0.tar.gz6

7 cd yasm-1.3.0

8

9 ./configure10

11 make12

13 make install14

15

16

17 #lame:Mp3音频解码

18

19 wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

20

21 tar -xzvf lame-3.99.5.tar.gz22

23 cd lame-3.99.5

24

25 ./configure26

27 make28

29 make install30

31

32

33 #amr支持

34

35 wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz

36

37 tar -xzvf opencore-amr-0.1.3.tar.gz38

39 cd opencore-amr-0.1.3

40

41 ./configure42

43 make44

45 make install46

47

48

49 #amrnb支持

50

51 wget http://www.penguin.cz/~utx/ftp/amr/amrnb-11.0.0.0.tar.bz2

52

53 tar -xjvf amrnb-11.0.0.0.tar.bz254

55 cd amrnb-11.0.0.0

56

57 ./configure58

59 make60

61 make install62

63

64

65 #amrwb支持

66

67 wget http://www.penguin.cz/~utx/ftp/amr/amrwb-11.0.0.0.tar.bz2

68

69 tar -xjvf amrwb-11.0.0.0.tar.bz270

71 cd amrwb-11.0.0.0

72

73 ./configure74

75 make76

77 make install78

79

80

81 #ffmpeg

82

83 wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2

84

85 tar -xjvf ffmpeg-2.5.3.tar.bz286

87 cd ffmpeg-2.5.3

88

89 ./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared90

91 make92

93 make install94

95

96

97 #加载配置

98

99 #最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。

100

101 ldconfig

3.使用方法

1 ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr #MP3转换AMR

2

3 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的动态链接库哪些没有找到:

1 ldd `which ffmpeg`2

3 libavdevice.so.54 =>not found4

5 libavfilter.so.3 =>not found6

7 libavformat.so.54 =>not found8

9 libavcodec.so.54 =>not found10

11 libswresample.so.0 =>not found12

13 libswscale.so.2 =>not found14

15 libavutil.so.51 =>not found16

17 libm.so.6 => /lib64/libm.so.6 (0x00002ab7c0eb6000)18

19 libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ab7c100b000)20

21 libc.so.6 => /lib64/libc.so.6 (0x00002ab7c1125000)22

23 /lib64/ld-linux-x86-64.so.2 (0x00002ab7c0d9a000)24

25 #如果类似于上面的输出内容,查找以上类库,会发现全部在/usr/local/lib/下

26

27 find /usr/local/lib/ | grep -E "libavdevice.so.54|libavfilter.so.3|libavcodec.so.54"

28

29 /usr/local/lib/libavfilter.so.3.17.100

30

31 /usr/local/lib/libavcodec.so.54.59.100

32

33 /usr/local/lib/libavdevice.so.54

34

35 /usr/local/lib/libavcodec.so.54

36

37 /usr/local/lib/libavfilter.so.3

38

39 /usr/local/lib/libavdevice.so.54.2.101

40

41

42

43 #查看链接库配置文件

44

45 more /etc/ld.so.conf | grep /usr/local/lib46

47 #如果不包含的话,需要编辑此文添加:

48

49 vi /etc/ld.so.conf50

51 /usr/local/lib52

53 /usr/local/lib6454

55 #运行配置命令

56

57 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文件

使用exec函数来执行

1 $amr = ‘./‘.$vo[‘voice‘];2 $mp3 = $amr.‘.mp3‘;3

4 if(file_exists($mp3) == true){5 //exit(‘无需转换‘);

6 }else{7 $command = "/usr/local/bin/ffmpeg -i $amr $mp3";8 exec($command,$error);9 }

仔细看看代码,我这边是用的/usr/local/bin/ffmpeg来执行的,因为我使用php不能直接运行ffmpeg指令,如果你的指令不在这个目录下,可以使用locate或者find来查找ffmpeg所在目录

原文:http://www.cnblogs.com/luojianqun/p/6291939.html

php把amr转换成mp3,PHP 将amr音频文件转换为mp3格式相关推荐

  1. PHP 将amr音频文件转换为mp3格式

    PHP 将amr音频文件转换为mp3格式 说下整体思路 1.服务器安装ffmpeg 2.使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数执行即可) 3 ...

  2. 如何将音频文件转换为MP3格式?

    音频文件有很多种格式,如 WAV.FLAC.AAC 等,其中 MP3 是最为常见的一种格式,因为它具有压缩比高.音质损失少.兼容性强等优点,适合在各种设备上播放.如果你想将一个音频文件转换为 MP3 ...

  3. 用 python 脚本+ffmpeg,把当前目录及子目录下的 wma音频文件转换为mp3 格式

    用 python 脚本+ffmpeg,把当前目录及子目录下的 wma音频文件转换为mp3 格式 用 python 脚本,结合ffmpeg软件,把当前目录及子目录下的 wma 音频文件转换为 mp3 格 ...

  4. php speex转码为mp3,将spx音频文件转换为mp3

    我必须将spx音频文件(ogg格式)转换为mp3文件.我已经尝试了几件事,至今没有任何工作.将spx音频文件转换为mp3 我试过使用Naudio.Lame库中的LameMP3FileWriter. p ...

  5. 免费在线MP3转换器:将音乐文件转换为MP3格式

    在今天的数字时代,音乐成为了人们生活中不可或缺的一部分.然而,由于音乐文件格式的不同,我们有时可能无法在不同的设备上播放我们最喜爱的歌曲.MP3格式作为最常用的音乐文件格式之一,通常可以被几乎所有的设 ...

  6. java 上传mp3文件大小,Java获取音频文件(MP3)的播放时长

    最近的一个项目需要按照时间播放mp3文件,例如,播放10分钟的不同音乐. 这就意味着我得事先知道mp3文件的播放时长,以决定播放几遍这个文件. 方案一:Java的方式 找第三方的库,真的感谢这些提供j ...

  7. java 将.amr音频文件转换为.mp3或.wav文件

    1.在windows系统下 //利用ffmpeg.exe工具与cmd中的命令进行转换 //sourcePath为需要转换的.amr文件路径;targetPath为转换好的.mp3文件路径: //too ...

  8. opencv把图片转换成二进制_Python+OpenCV实现将图像转换为二进制格式

    Python+OpenCV实现将图像转换为二进制格式 发布时间:2020-09-20 20:30:58 来源:脚本之家 阅读:68 作者:大蛇王 在学习tensorflow的过程中,有一个问题,ten ...

  9. html把毫秒转换成年月日,如何使用JavaScript将毫秒转换为日期格式?

    给定一串毫秒数,如何使用JavaScript将它们转换为日期格式?下面本篇文章就来给大家介绍一下使用JavaScript将毫秒转换为日期格式的方法,希望对大家有所帮助. 方法1: ● 首先声明变量ti ...

  10. 如何将 FLV 视频文件转换为 MP3

    您可能会在视频网站上获得许多扩展名为 .flv 的视频.也许您不想观看视频,而更愿意在旅途中通过车载 CD 播放器或 MP3 播放器收听.在这种情况下,您需要将这些 FLV 视频转换为一些常见的音频格 ...

最新文章

  1. 【iOS】NSDate分类,获得中国农历
  2. 求平方根sqrt()函数的底层算法效率问题
  3. 代号“凤凰”,阿里新零售秘密武器,今年要打入100个城市
  4. Android点击EditText文本框之外任何地方隐藏键盘的解决办法
  5. Python3.8 安装gmpy2 教程, 无法安装gmpy2解决方案
  6. asp sql 导出 excel_使用SQL进行数据分析(八)
  7. 企业信息安全整体架构
  8. MATLAB矩阵运算
  9. wifi密码破解案列
  10. 微信公众号开发之使用eclipse创建微信web工程并发布到BAE测试
  11. 最适合python程序员用的笔记本-JupyterLab:程序员的笔记本
  12. Socket+MFC的聊天室
  13. 我花了五个小时的时间,将全部文章详细整理出来了,千万不要错过!
  14. linux下执行gauss的脚本文件,求脚本:同时向n个nodes提交并执行当前目录下所有Gaussian输入文件...
  15. Word排版—选择题选项快速对齐
  16. Python就业都有哪些岗位?
  17. Bailian2755 神奇的口袋【递归+DP】
  18. Cisco Packet Tracer 交换机的VLAN划分
  19. 央妈是怎么印钱的(1)--资产负债表
  20. 别忽略国美之争的真正遗产

热门文章

  1. QT界面无法显示中文
  2. MySQL闪退解决办法
  3. 探寻微博背后的大数据原理:微博推荐算法简述
  4. mate2 刷机 android8,华为Mate2官方原版固件rom刷机包_华为Mate2系统强刷升级包
  5. php 爬虫图片,随机图片API-json格式基于python爬虫和PHP
  6. 量表与问卷的区别比较
  7. JSON 对比工具,优秀的JSON对比工具,对比json数据
  8. android ntp服务器配置
  9. Cortex-M3 (NXP LPC1788)之GPIO
  10. 维纳滤波(Wiener Filter)