FFmpeg 是一個被廣泛使用的開源音影片處理庫,幾乎所有流行的音影片編輯工具、播放器中都有它的身影.
在windows上安裝它非常簡單,下載壓縮包,解壓後得到3個exe即可使用了。
但在Linux系統上,除非直接使用系統源,例如yum apt
等方式安裝,否則直接原始碼編譯安裝還是挺費勁的,可惜系統源自帶的ffmpeg一般都非常古老,現在最新ffmepg已到7.x版本,而CentOS源仍是 2.x/3.x的遠古版。
即便網路上並且藉助ai更新了一些三方源,但最新仍只到4.x,網路上也鮮少CentOS7繫上原始碼編譯最新ffmpeg的可用方法。經過一番折騰,總算在CentOS7上成功安裝了最新版的ffmpeg,整理下記錄下。
0. 先更新 yum 源
分別執行以下命令
yum clean all
yum -y update
更新後,再安裝一堆依賴
yum install -y autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel libass-devel lame-devel opus-devel
如果遇到提示輸入 [y/n/a]
時輸入 y
回車.
為什麼要執行
yum update
呢,不執行可不可以?當然可以,但更新是更好的選擇,不僅可以更新軟體包列表,更重要的是可能會解決一些潛在的依賴問題。yum update 命令會自動解決軟體包的依賴關係,並安裝所有必要的依賴包。如果系統中缺少一些依賴包,yum install 命令可能會失敗。
1. 建立一個空目錄
原始碼編譯要先提前先編譯一堆編解碼庫,互相之間都有依賴關係,位置很重要,為避免出錯,在家目錄下建立一個ffmpeg_source
目錄,所有操作前需先執行 cd ~/ffmpeg_source
先進入該目錄中,忘記這步操作會出現很多報錯,類似pkg_config
等,如果複製該報錯資訊去搜索,只會導致錯上加錯,這裏踩過大坑。
mkdir ~/ffmpeg_source && cd ~/ffmpeg_source
之後的所有操作都在 ~/ffmpeg_source
目錄中
2. 安裝 NASM
這是一個彙編器,缺少它可能影響編譯速度
執行以下命令安裝
cd ~/ffmpeg_source 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
類似上方,另一個彙編器,不用深究,裝就是了。
同樣依次執行命令
cd ~/ffmpeg_source 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 libx265
要處理影片,這2個是必須的
依次執行
cd ~/ffmpeg_source 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 cd ~/ffmpeg_source 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
5. 安裝 ### libfdk_aac
aac編碼器,必不可少
libfdk_aac 是一個用於編碼和解碼 AAC (Advanced Audio Coding) 音訊的開源庫。它是 Fraunhofer FDK AAC 庫的一個分支,Fraunhofer FDK AAC 庫是 AAC 音訊格式的官方參考實現。
cd ~/ffmpeg_source 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
6. 安裝 ### libmp3lame
mp3格式音訊編碼器
libmp3lame 是一個用於編碼 MP3 音訊的庫。它提供了對 LAME 編碼器的訪問,LAME 編碼器是一個高質量的開源 MP3 編碼器。
cd ~/ffmpeg_source 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
7. 安裝 libopus
libopus 是一個用於編碼和解碼 Opus 音訊格式的庫。Opus 是一種免版稅、高品質的音訊編解碼器,專為互動式語音和音樂傳輸而設計。
cd ~/ffmpeg_source 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
8. 安裝 libvpx
VP8/VP9 編解碼器
libvpx 是一個用於編碼和解碼 VP8 和 VP9 影片格式的庫。VP8 和 VP9 是由 Google 開發的開源影片編解碼器,以其高質量和高壓縮率而聞名。
cd ~/ffmpeg_source 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
如果以上安裝完畢並且未報錯的話,接下來下載ffmpeg最新版原始碼進行編譯安裝。如果報錯,一般是缺少一些依賴,按照提示嘗試
yum install -y xxxx
9. 下載ffmpeg原始碼並編譯安裝
cd ~/ffmpeg_source 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-libharfbuzz \ --enable-libmp3lame \ --enable-libopus \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree \ --enable-libass make && make install
如果沒有報錯,那麼安裝就完成了,嘗試執行
ffmpeg -version
看看版本如果出現報錯,可能的一個原因是,在執行安裝某個庫之前,沒有進入之前提到的
~/ffmpeg_source
目錄,導致找不到對應的依賴,可重新安裝,記得先cd ~/ffmpeg_source