Linux下編譯ffmpeg 3.3,包含aac, x264, x265庫

2020-08-10 16:30:37

參考連線:https://www.cnblogs.com/jimodetiantang/p/9160183.html

一開始,我是直接從2.3節開始的。然後墜入深坑。所以如果有朋友需要編譯帶 aac x264, x265的話,強烈推薦上面鏈接。我這裏僅記錄了錯誤的過程,和自己是如何跳出坑的過程。

1、libfdk-aac 安裝完成。

2、但是編譯libvpx 出錯:

ht-dong@ubuntu:~/ffmpeg/ffmpeg/libvpx$ ./run.sh 
./configure: 273: ./build/make/configure.sh: awk: not found
./configure: 166: ./configure: perl: not found
Perl is required to build

Configuration failed. This could reflect a misconfiguration of your
toolchains, improper options selected, or another problem. If you
don't see any useful error messages above, the next step is to look
at the configure error log file (config.log) to determine what
configure was trying to do when it died.
./configure: 282: ./configure: rm: not found
./run.sh: line 10: make: command not found
./run.sh: line 11: make: command not found
./run.sh: line 12: make: command not found

3、編譯hx264, x265,正確執行。然後編譯ffmpeg,執行make 時,出現:

make[1]: Nothing to be done for 'all'.

4、從網上找的答案:make clean, 然後輸入ldconfig 或者 sudo ldconfig, 也是依然不可以。看來中間有一步驟出錯,影響最終結果!

所以,還是得老老實實的,從2.1步驟執行(最開始,以爲這兩步不需要呢,哎)。

 

===========================華麗分割線===================================

 

下面 下麪介紹正確的順序:

目錄結構:ffmpeg_source, 裏面先把所有的庫都下載好,且解壓

我的系統是Ubuntu,所以,第一步的環境準備,跳過了。

2.1 是安裝一些開發工具。如果有意外,那麼需要更新一下,sudo apt-get update

apt-get -y install libass-dev libfreetype6-dev libmp3lame-dev libtheora-dev libvorbis-dev libopus-dev libx264-dev yasm

2.2  如果許可權不夠,可以用在執行語句最前面,新增 : sudo,

apt-get -y install libva-dev libvdpau-dev libsdl2-dev

 2.3 安裝 fdk-aac-0.1.5: 我是直接在解壓aac的根目錄下,直接新建run.sh,將下面 下麪執行程式碼放進去執行的。 也可以逐條執行後四行

# cd ~/ffmpeg_sources
# wget http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.5.tar.gz
# tar -zxvf fdk-aac-0.1.5.tar.gz && mv fdk-aac-0.1.5 fdk-aac
# cd fdk-aac
# ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
# make
# make install
# make distclean

2.4 安裝 libvpx-1.6.1: 我是直接在解壓libvpx的根目錄下,直接新建run.sh,將下面 下麪執行程式碼放進去執行的。 也可以逐條執行後六行

# cd ~/ffmpeg_sources
# wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.6.1.tar.bz2
# tar -jxvf libvpx-1.6.1.tar.bz2 && mv libvpx-1.6.1 libvpx
# cd libvpx
# PATH="$HOME/bin:$PATH"
# ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
# PATH="$HOME/bin:$PATH"
# make 
# make install
# make distclean

這裏會出現問題,就是因爲我最初的兩行沒有執行,沒有準備好環境。

2.5  安裝 x265-2.4: 我是直接在解壓x265的根目錄下,直接新建run.sh,將下面 下麪執行程式碼放進去執行的。 也可以逐條執行後五行

# cd ~/ffmpeg_sources
# sudo apt-get install cmake mercurial
# wget https://bitbucket.org/multicoreware/x265/downloads/x265_2.4.tar.gz
# tar -zxvf x265_2.4.tar.gz && mv x265_2.4 x265
# cd x265/build/linux
# PATH="$HOME/bin:$PATH"
# cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
# make 
# make install
# make clean

2.6 安裝 x264: 我是直接在解壓x264的根目錄下,直接新建run.sh,將下面 下麪執行程式碼放進去執行的。 也可以逐條執行後四行

# cd ~/ffmpeg_sources
# wget  https://download.videolan.org/x264/snapshots/x264-snapshot-20170822-2245-stable.tar.bz2
# tar -jxvf x264-snapshot-20170822-2245-stable.tar.bz2 && mv x264-snapshot-20170822-2245-stable x264
# ./configure --prefix="$HOME/ffmpeg_build" --enable-shared --enable-pic
# make
# make install
# make distclean

2.7  編譯FFmpeg: 我是直接在解壓ffmpeg的根目錄下,直接新建run.sh,將下面 下麪執行程式碼放進去執行的。 也可以逐條執行從第五行開始

# cd ~/ffmpeg_sources
# wget http://ffmpeg.org/releases/ffmpeg-3.3.3.tar.xz
# tar -Jxvf ffmpeg-3.3.3.tar.xz && mv ffmpeg-3.3.3 ffmpeg
# cd ffmpeg
# PATH="$HOME/bin:$PATH"
# export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
# ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static"  \
    --extra-cflags="-I$HOME/ffmpeg_build/include" \
    --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
    --bindir="$HOME/bin" \
    --enable-gpl \
    --enable-libass \
    --enable-libfdk-aac \
    --enable-libfreetype \
    --enable-libmp3lame \
    --enable-libopus \
    --enable-libtheora \
    --enable-libvorbis \
    --enable-libvpx \
    --enable-libx264 \
    --enable-libx265 \
    --enable-nonfree
# PATH="$HOME/bin:$PATH"
# make
# make install
# make distclean
# hash -r

執行的時候,enable-libmp3lame 不能通過,所以我就去掉了。

其他錯誤:

ERROR: libass not found using pkg-config, 解決方法:apt install libass-dev  // 安裝這個

ERROR: libmp3lame >= 3.98.3 not dound   // 這個沒解決,直接去掉的mp3

ERROR: opus not found using pkg-config  // 解決方法: 

sudo apt-get install libopus-dev

...... 還有其他找不到pkg-config的錯誤,都是因爲沒有執行2.1 和 2.2的原因。

 

完整順序,你參考的博文開頭的鏈接,我這裏就是記錄了問題。