切換語言為:簡體
Centos7.9 原始碼編譯安裝 FFmpeg7

Centos7.9 原始碼編譯安裝 FFmpeg7

  • 爱糖宝
  • 2024-09-22
  • 2043
  • 0
  • 0

FFmpeg 是一個被廣泛使用的開源音影片處理庫,幾乎所有流行的音影片編輯工具、播放器中都有它的身影.

在windows上安裝它非常簡單,下載壓縮包,解壓後得到3個exe即可使用了。

但在Linux系統上,除非直接使用系統源,例如yum apt等方式安裝,否則直接原始碼編譯安裝還是挺費勁的,可惜系統源自帶的ffmpeg一般都非常古老,現在最新ffmepg已到7.x版本,而CentOS源仍是 2.x/3.x的遠古版。

即便網路上並且藉助ai更新了一些三方源,但最新仍只到4.x,網路上也鮮少CentOS7繫上原始碼編譯最新ffmpeg的可用方法。經過一番折騰,總算在CentOS7上成功安裝了最新版的ffmpeg,整理下記錄下。

Centos7.9 原始碼編譯安裝 FFmpeg7

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

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.