FFmpeg支持Linux、macOS、Windows、Android等操作系統,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官網的編譯入口地址為https://trac.ffmpeg.org/wiki/CompilationGuide,在這里可以找到FFmpeg對各系統的編譯說明。更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。
一、在CentOS上編譯安裝FFmpeg
以常見的CentOS為例,FFmpeg的編譯說明頁面為https://trac.ffmpeg.org/wiki/CompilationGuide/Centos,這里給出了在CentOS上編譯安裝FFmpeg的詳細步驟。
1、安裝工具包
根據FFmpeg官網的說明,首先要通過yum安裝下列工具:
yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
接著創建名叫ffmpeg_sources的目錄:
mkdir ~/ffmpeg_sources
2、安裝NASM
某些庫使用的匯編程序。強烈建議使用,否則生成的版本可能會非常緩慢。
NASM的編譯和安裝命令如下:
cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
3、安裝Yasm
某些庫使用的匯編程序。強烈建議使用,否則生成的版本可能會非常緩慢。
Yasm的編譯和安裝命令如下:
cd ~/ffmpeg_sources
curl -O -L https://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 --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
4、安裝libx264
H.264視頻編碼器。libx264依賴nasm-2.13以上版本。需要FFmpeg增加配置選項“ --enable-gpl --enable-libx264”。
libx264的編譯和安裝命令如下:
cd ~/ffmpeg_sources
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
5、安裝libx265
H.265/HEVC視頻編碼器。需要FFmpeg增加配置選項“ --enable-gpl --enable-libx265”。
libx265的編譯和安裝命令如下:
cd ~/ffmpeg_sources
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd ~/ffmpeg_sources/x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install
6、安裝libfdk_aac
AAC音頻編碼器。需要FFmpeg增加配置選項“ --enable-nonfree --enable-libfdk_aac”。
libfdk_aac的編譯和安裝命令如下:
cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
7、安裝libmp3lame
MP3音頻編碼器。需要FFmpeg增加配置選項“ --enable-libmp3lame”。
libmp3lame的編譯和安裝命令如下:
cd ~/ffmpeg_sources
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
8、安裝libopus
Opus音頻解碼器和編碼器。需要FFmpeg增加配置選項“ --enable-libopus”。
libopus的編譯和安裝命令如下:
cd ~/ffmpeg_sources
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
9、安裝libvpx
VP8/VP9視頻編碼器和解碼器。需要FFmpeg增加配置選項“ --enable-libvpx”。
libvpx的編譯和安裝命令如下:
cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install
10、安裝FFmpeg
FFmpeg的編譯和安裝命令如下:
cd ~/ffmpeg_sources
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" 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" \
? --extra-libs=-lpthread \
? --extra-libs=-lm \
? --bindir="$HOME/bin" \
? --enable-gpl \
? --enable-libfdk_aac \
? --enable-libfreetype \
? --enable-libmp3lame \
? --enable-libopus \
? --enable-libvpx \
? --enable-libx264 \
? --enable-libx265 \
? --enable-nonfree
make
make install
hash -d ffmpeg
二、在EulerOS(歐拉系統)上編譯安裝FFmpeg
歐拉系統是國內自主研發的服務器操作系統,截止2023年底,歐拉在服務器操作系統市場份額達36.8%。EulerOS基于CentOS的源碼開發,運行環境兼容CentOS,國內的華為云、天翼云、移動云、聯通云均采用歐拉系統。更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。
1、安裝工具包
經實測,在歐拉系統上需要通過yum安裝下列工具:
yum install nasm g++ openssl-devel curl-devel cmake git
2、安裝x264
到這個網址下載最新的x264源碼包https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.gz,將下載好的壓縮包上傳到歐拉服務器并解壓,再執行下面的編譯和安裝命令:
./configure --enable-shared --enable-static make make install
3、安裝x265
到這個網址下載最新的x265源碼包https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz,將下載好的壓縮包上傳到歐拉服務器并解壓,再執行下面的編譯和安裝命令:
cd build cmake ../source make make install
4、安裝FFmpeg
到這個網址下載最新的FFmpeg源碼包https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n5.1.2.tar.gz,將下載好的壓縮包上傳到歐拉服務器并解壓,再執行下面的編譯和安裝命令:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig ./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-iconv --enable-gpl --enable-nonfree make make install
安裝完畢,運行以下命令查看FFmpeg的版本信息。
ffmpeg -version
更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書。