1. 首先安裝系統(tǒng)編譯環(huán)境
yum install -y automake autoconf libtool gcc gcc-c++ #CentOS
2. 編譯所需源碼包
2.1 - yasm
匯編器阵难,新版本的ffmpeg增加了匯編代碼
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install
2.2 - lame:Mp3音頻解碼
wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install
2.3 - amr支持
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 - 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
2.5 - amrwb支持
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
2.6 - ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2
tar -xjvf ffmpeg-2.5.3.tar.bz2
cd ffmpeg-2.5.3
./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared
make
make install
2.7 - 加載配置
最后寫入config后麸锉,終端運行ffmpeg命令柜与,出現(xiàn)success和已安裝的擴(kuò)展柔逼,則運行成功淌实。
ldconfig
2.8 - 可能的問題
[root@namenode1 ffmpeg-3.1.1]# ffmpeg
ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
解決方法:
> vim ~/.bashrc
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_HOME/lib:/usr/local/lib
3. 使用方法
ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr --MP3轉(zhuǎn)換AMR
ffmpeg -i 1.amr 1.mp3 --AMR轉(zhuǎn)換MP3
4. 附錄:
4.1 - 附錄1
ffmpeg默認(rèn)安裝目錄為“/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
4.2 - 附錄2
如果出現(xiàn)以下提示
ffmpeg: error while loading shared libraries: libavdevice.so.54: cannot open shared object file: No such file or directory
可以通過如下方式查看ffmpeg的動態(tài)鏈接庫哪些沒有找到
ldd `which ffmpeg`
libavdevice.so.54 => not found
libavfilter.so.3 => not found
libavformat.so.54 => not found
libavcodec.so.54 => not found
libswresample.so.0 => not found
libswscale.so.2 => not found
libavutil.so.51 => not found
libm.so.6 => /lib64/libm.so.6 (0x00002ab7c0eb6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ab7c100b000)
libc.so.6 => /lib64/libc.so.6 (0x00002ab7c1125000)
/lib64/ld-linux-x86-64.so.2 (0x00002ab7c0d9a000)
#如果類似于上面的輸出內(nèi)容痕届,查找以上類庫韧献,會發(fā)現(xiàn)全部在/usr/local/lib/下
find /usr/local/lib/ | grep -E "libavdevice.so.54|libavfilter.so.3|libavcodec.so.54"
/usr/local/lib/libavfilter.so.3.17.100
/usr/local/lib/libavcodec.so.54.59.100
/usr/local/lib/libavdevice.so.54
/usr/local/lib/libavcodec.so.54
/usr/local/lib/libavfilter.so.3
/usr/local/lib/libavdevice.so.54.2.101
#查看鏈接庫配置文件
more /etc/ld.so.conf | grep /usr/local/lib
#如果不包含的話,需要編輯此文添加:
vi /etc/ld.so.conf
/usr/local/lib
/usr/local/lib64
#運行配置命令
ldconfig
關(guān)于ffmpeg簡介:
FFmpeg是一個開源免費跨平臺的視頻和音頻流方案研叫,屬于自由軟件锤窑,采用LGPL或GPL許可證(依據(jù)你選擇的組件)。它提供了錄制嚷炉、轉(zhuǎn)換以及流化音視頻的完整解決方案渊啰。它包含了非常先進(jìn)的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質(zhì)量申屹,libavcodec里很多codec都是從頭開發(fā)的绘证。其官方網(wǎng)址為:http://www.ffmpeg.org
最后,部分內(nèi)容參照http://linux.it.net.cn/e/Linuxit/2014/0828/3980.html