項目中使用的後臺服務器需要支持MP3格式和AMR格式相互轉換,於是想到了FFMPEG這個萬能解碼工具,根據以前使用FFMPEG的經驗,和網上查閱相差資料,爲後臺同事初步實現FFMPEG命令行工具進行MP3和AMR格式的互轉。現把操作流程簡要記錄如下:
一、首先安裝系統編譯環境
我的系統爲Ubuntu16.04 64位。
apt-get install -y automake autoconf libtool gcc g++
二、下載和編譯最新版本的源碼包
新版本的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
下載地址:http://lame.sourceforge.net/download.php
tar -xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure && make &&make install
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
下載地址: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
說明:
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