天天看點

Linux環境ffmpeg以及相應解碼器安裝1. 首先安裝系統編譯環境2. 編譯所需源碼包3. 使用方法4. 附錄:

1. 首先安裝系統編譯環境

2. 編譯所需源碼包

2.1 - yasm

彙編器,新版本的ffmpeg增加了彙編代碼

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xzvf yasm.tar.gz
cd yasm
./configure
make
make install
           

2.2 - lame:Mp3音頻解碼

wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-..tar.gz
tar -xzvf lame-..tar.gz
cd lame-.
./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.tar.gz
cd opencore-amr
./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-.tar.bz2
cd amrnb-
./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-.tar.bz2
cd amrwb-
./configure
make
make install
           

2.6 - ffmpeg

wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2
tar -xjvf ffmpeg.tar.bz2
cd ffmpeg
./configure --prefix=/usr/local/ffmpeg --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared
make
make install
           

2.7 - 加載配置

最後寫入config後,終端運作ffmpeg指令,出現success和已安裝的擴充,則運作成功。

2.8 - 可能的問題

[[email protected] ffmpeg]# ffmpeg
ffmpeg: error while loading shared libraries: libavdevice.so: 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轉換AMR
ffmpeg -i 1.amr 1.mp3                 --AMR轉換MP3
                

4. 附錄:

4.1 - 附錄1

ffmpeg預設安裝目錄為“/usr/local/lib”,有些64位系統下軟體目錄則為“/usr/lib64”,編譯過程中可能會出現

ffmpeg: error while loading shared libraries: libmp3lame.so: cannot open shared object file: No such file or directory
           

等類似的錯誤,解決辦法是建立軟連結:

ln -s /usr/local/lib/libmp3lame.so /usr/lib64/libmp3lame.so
           

4.2 - 附錄2

如果出現以下提示
           
ffmpeg: error while loading shared libraries: libavdevice.so: cannot open shared object file: No such file or directory
           

可以通過如下方式檢視ffmpeg的動态連結庫哪些沒有找到

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. ()
        libpthread.so.0 => /lib64/libpthread.so. ()
        libc.so.6 => /lib64/libc.so. ()
        /lib64/ld-linux-x86-.so. ()
#如果類似于上面的輸出内容,查找以上類庫,會發現全部在/usr/local/lib/下
find /usr/local/lib/ | grep -E "libavdevice.so.54|libavfilter.so.3|libavcodec.so.54"
/usr/local/lib/libavfilter.so..
/usr/local/lib/libavcodec.so..
/usr/local/lib/libavdevice.so.
/usr/local/lib/libavcodec.so.
/usr/local/lib/libavfilter.so.
/usr/local/lib/libavdevice.so..

#檢視連結庫配置檔案
more  /etc/ld.so.conf | grep /usr/local/lib
#如果不包含的話,需要編輯此文添加:
vi /etc/ld.so.conf
/usr/local/lib
/usr/local/lib64
#運作配置指令
ldconfig
           

關于ffmpeg簡介:

FFmpeg是一個開源免費跨平台的視訊和音頻流方案,屬于自由軟體,采用LGPL或GPL許可證(依據你選擇的元件)。它提供了錄制、轉換以及流化音視訊的完整解決方案。它包含了非常先進的音頻/視訊編解碼庫libavcodec,為了保證高可移植性和編解碼品質,libavcodec裡很多codec都是從頭開發的。其官方網址為:http://www.ffmpeg.org

最後,部分内容參照http://linux.it.net.cn/e/Linuxit/2014/0828/3980.html