编译安装sox支持mp3格式
公司的字典应用出现部分音频文件无法播放的现象,经过测试发现单个字的音频文件比较小,在浏览器下无法播放,于是使用sox在单个字的音频文件上叠加一段空音频,在配合shell脚本批量叠加,由于公司的服务器使用的亚马逊定制的系统(基于fedora),所以不能按照网上的教程直接apt-get或者yum来安装,只能动手编译。默认编译安装sox是无法支持mp3格式的,所以要先编译lame和MAD支持mp3
一、准备源码包
sox : http://sox.sourceforge.net/
lame : http://lame.sourceforge.net/download.php
MAD (MPEG Audio Decode): http://www.underbit.com/products/mad 需要下载MAD里的三个包
按照lame--->libid3tag--->libmad--->madplayer---->sox的顺序编译安装
二、开始安装
yum install gcc gcc-c++
编译安装
./configure
make
make install
基本上就都可以了sox要支持mp3格式在执行./configure后要注意已下的几处是否是yes
gsm........................yes (in-tree)
lpc10......................yes (in-tree)
mp2/mp3....................yes
id3tag....................yes
lame......................yes
lame id3tag...............yes
dlopen lame...............no
mad.......................yes
如果没问题执行make -s && make install
来安装sox
最后可以用sox a.mp3 b.mp3 ab.mp3
来验证sox是否成功
三、解决编译出错
如果编译libmad遇到错误(make时):
cc1: error: unrecognized command line option '-fforce-mem'
make[2]: *** [version.lo] Error 1
make[2]: Leaving directory `/opt/libmad-0.15.1b'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/libmad-0.15.1b'
make: *** [all] Error 2
这时vi Makefile
删除-fforce-mem
,在执行make就没有问题了
批量叠加mp3文件的shell脚本:https://opswill.com/articles/using-linux-shell-to-add-two-mp3.html