项目中使用的后台服务器需要支持MP3格式和AMR格式相互转换,于是想到了FFMPEG这个万能解码工具,根据以前使用FFMPEG的经验,和网上查阅相差资料,为后台同事初步实现FFMPEG命令行工具进行MP3和AMR格式的互转。现把操作流程简要记录如下:
一、首先安装系统编译环境
我的系统为Ubuntu16.04 64位。
apt-get install -y automake autoconf libtool gcc g++
二、下载和编译最新版本的源码包
2.1、yasm:汇编器。
新版本的ffmpeg增加了汇编代码。yasm目前最新版本为yasm-1.3.0.tar.gz
下载地址:http://yasm.tortall.net/Download.html
tar -xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure && make && make install
2.2、lame:Mp3音频解码
下载地址:http://lame.sourceforge.net/download.php
tar -xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure && make &&make install
2.3、opencore-amr
Linux终端下载命令: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
2.4、amrwb编译安装
下载地址:http://www.penguin.cz/~utx/ftp/amr/
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
注:编译过程中会遇到类似下面错误,可以在执行完 ./configure 后修改Makefile和prepare_sources.sh 后,手动执行命令。
修改Makefile注释掉26204-b00.zip解压的命令,如下:
在amrwb-11.0.0.0路径下手动执行命令解压26204-b00.zip,如下:
chmod +w .
unzip -d . 26204-b00.zip
修改prepare_sources.sh,注释掉相关内容如下:
手动执行命令如下:
unzip 26204-b00_ANSI-C_source_code.zip
然后再执行命令:make && make install
2.5、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。
2.6、ffmpeg配置和安装
wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2
tar -xjvf ffmpeg-2.5.3.tar.bz2
ldconfig -v
sync
cd ffmpeg-2.5.3
./configure –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-version3 –enable-shared
make
make install
ldconfig -v
说明:
ffmpeg库默认安装路径为 /usr/local/lib
ffmpeg等可执行文件默认路径为/usr/local/bin
三、使用方法举例
MP3转换AMR
ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr
AMR转换MP3
ffmpeg -i 1.amr 1.mp3