AMR格式是智能手機上的常用音頻文件格式,,比如MP3格式的壓縮比大,,但是文件比MP3小,,所以在移動互聯(lián)項目中應用比較廣泛,。去年年底協(xié)助聯(lián)想研究院開發(fā)一款預裝產(chǎn)品過程中需要使用到MP3格式和AMR格式的互相轉(zhuǎn)換,服務器環(huán)境為CentOS 6.0,,過程如下。 1. 首先安裝系統(tǒng)基礎(chǔ)環(huán)境RHEL & CentOS 系列:yum install -y automake autoconf libtool gcc gcc-c++ Debian & Ubuntu 系列:apt-get install automake autoconf libtool gcc gcc-c++ 2. 下載最新的FFMpeg源碼包FFMpeg官方下載地址:http:///download.html,。 一般直接使用最新版本,,下載完成后解壓縮,進入源碼文件夾,,運行“./configure --help”查看幫助,,這里主要是為了確認需要安裝的擴展,有些擴展默認是已經(jīng)開啟的,,有些是需要單獨下載擴展源碼包進行編譯的,。以我的需求為例,需要單獨編譯yasm,、lame,、OenCore AMR、AmrNB和AmrWB,其中l(wèi)ame是MP3解碼器,。 3. 編譯所需源碼包從各個官方地址下載上述五種源碼包,,為了保證兼容最新版本的ffmpeg,請務必也下載最新版本的源碼: yasm:http://yasm./Download.html lame:http://lame./download.php OenCore AMR:http:///projects/opencore-amr AmrNB & AmrWB:http://www./~utx/amr 分別解壓縮并編譯上述源碼包,,直接使用“./configure && make && make install”即可,。 4. 編譯FFMpef回到剛才的FFMpeg源碼目錄,打開所需擴展并且編譯FFMpeg: ./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared make && make install ldconfig 最后寫入config后,,終端運行ffmpeg命令,,出現(xiàn)success和已安裝的擴展,則運行成功,。 5. 可能遇到的問題ffmpeg默認安裝目錄為“/usr/local/lib”,,有些64位系統(tǒng)下軟件目錄則為“/usr/lib64”,編譯過程中可能會出現(xiàn)“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 mv /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0 6. 使用方法MP3轉(zhuǎn)換AMR: ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr AMR轉(zhuǎn)換MP3: ffmpeg -i 1.amr 1.mp3 其他需求使用方法參考幫助,,其中-i意味輸入,ac和ar代表音頻的碼率和赫茲這些概念,,使用之前請咨詢客戶端開發(fā)工程師,。 目前可以總結(jié)的暫時只有這么多,如有問題,,請?zhí)釂?。下面之前我編譯的一個完整源碼包和自動編譯安裝的shell腳本: ffmpeg_by_feiyan.zip 02 | echo "--------------------------" |
03 | echo "Start Installing..." |
04 | echo "--------------------------" |
06 | echo "--------------------------" |
07 | echo "0. Tar Packages..." |
08 | echo "--------------------------" |
09 | for i in *. tar .gz; do tar -xzvf "$i" ; done |
10 | for i in *. tar .bz2; do tar -xjvf "$i" ; done |
12 | echo "--------------------------" |
13 | echo "1. Install yasm..." |
14 | echo "--------------------------" |
16 | ./configure && make && make install |
19 | echo "--------------------------" |
20 | echo "2. Install lame..." |
21 | echo "--------------------------" |
23 | ./configure && make && make install |
26 | echo "--------------------------" |
27 | echo "3. Install OenCore AMR..." |
28 | echo "--------------------------" |
30 | ./configure && make && make install |
33 | echo "--------------------------" |
34 | echo "4. Install AmrNB..." |
35 | echo "--------------------------" |
37 | ./configure && make && make install |
40 | echo "--------------------------" |
41 | echo "5. Install AmrWB..." |
42 | echo "--------------------------" |
44 | ./configure && make && make install |
47 | echo "--------------------------" |
48 | echo "Finnal. Install FFMpeg..." |
49 | echo "--------------------------" |
51 | ./configure -- enable -libmp3lame -- enable -libopencore-amrnb -- enable -libopencore-amrwb -- enable -version3 -- enable -shared |
56 | echo "--------------------------" |
57 | echo "FFMpeg Install Successful" |
58 | echo "Example:: ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr" |
60 | echo "--------------------------" |
|