Linux編譯ffmpeg並轉換MP3到AMR

AMR格式是智能手機上的經常使用音頻文件格式,好比MP3格式的壓縮比大,可是文件比MP3小,因此在移動互聯項目中應用比較普遍。去年年末協助聯想研究院開發一款預裝產品過程當中須要使用到MP3格式和AMR格式的互相轉換,服務器環境爲CentOS 6.0,過程以下。 php

1. 首先安裝系統基礎環境

RHEL & CentOS 系列:yum install -y automake autoconf libtool gcc gcc-c++ html

Debian & Ubuntu 系列:apt-get install automake autoconf libtool gcc gcc-c++ c++

2. 下載最新的FFMpeg源碼包

FFMpeg官方下載地址:http://ffmpeg.org/download.htmlshell

通常直接使用最新版本,下載完成後解壓縮,進入源碼文件夾,運行「./configure --help」查看幫助,這裏主要是爲了確認須要安裝的擴展,有些擴展默認是已經開啓的,有些是須要單獨下載擴展源碼包進行編譯的。以個人需求爲例,須要單獨編譯yasm、lame、OenCore AMR、AmrNB和AmrWB,其中lame是MP3解碼器。 bash

3. 編譯所需源碼包

從各個官方地址下載上述五種源碼包,爲了保證兼容最新版本的ffmpeg,請務必也下載最新版本的源碼: 服務器

yasmhttp://yasm.tortall.net/Download.html ui

lamehttp://lame.sourceforge.net/download.php .net

OenCore AMRhttp://sourceforge.net/projects/opencore-amr code

AmrNB & AmrWBhttp://www.penguin.cz/~utx/amr htm

分別解壓縮並編譯上述源碼包,直接使用「./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命令,出現success和已安裝的擴展,則運行成功。

5. 可能遇到的問題

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

mv /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0

6. 使用方法

MP3轉換AMR: ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr

AMR轉換MP3: ffmpeg -i 1.amr 1.mp3

其餘需求使用方法參考幫助,其中-i意味輸入,ac和ar表明音頻的碼率和赫茲這些概念,使用以前請諮詢客戶端開發工程師。

目前能夠總結的暫時只有這麼多,若有問題,請提問。下面以前我編譯的一個完整源碼包和自動編譯安裝的shell腳本:

#!/bin/sh
echo "--------------------------"
echo "Start Installing..."
echo "--------------------------"
  
echo "--------------------------"
echo "0. Tar Packages..."
echo "--------------------------"
for i in *.tar.gz; do tar -xzvf "$i"; done
for i in *.tar.bz2; do tar -xjvf "$i"; done
  
echo "--------------------------"
echo "1. Install yasm..."
echo "--------------------------"
cd yasm-1.2.0
./configure && make && make install
cd ..
  
echo "--------------------------"
echo "2. Install lame..."
echo "--------------------------"
cd lame-3.99.4
./configure && make && make install
cd ..
  
echo "--------------------------"
echo "3. Install OenCore AMR..."
echo "--------------------------"
cd opencore-amr-0.1.3
./configure && make && make install
cd ..
  
echo "--------------------------"
echo "4. Install AmrNB..."
echo "--------------------------"
cd amrnb-10.0.0.0
./configure && make && make install
cd ..
  
echo "--------------------------"
echo "5. Install AmrWB..."
echo "--------------------------"
cd amrwb-10.0.0.0
./configure && make && make install
cd ..
  
echo "--------------------------"
echo "Finnal. Install FFMpeg..."
echo "--------------------------"
cd ffmpeg-0.10
./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared
make && make install
ldconfig
cd ..
  
echo "--------------------------"
echo "FFMpeg Install Successful"
echo "Example:: ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr"
echo "Enjoy it......"
echo "--------------------------"
相關文章
相關標籤/搜索