創建文件夾
- ffmpeg_sources? 存放源文件
- ffmpeg_build? ? ? ?構建文件并安裝庫
- bin? ? ? ? ? ? ? ? ? ? ? ?存放二進制可執行文件
安裝依賴環境? 整體安裝
sudo apt-get update -qq && sudo apt-get -y install \autoconf \automake \build-essential \cmake \git-core \libass-dev \libfreetype6-dev \libgnutls28-dev \libsdl2-dev \libtool \libva-dev \libvdpau-dev \libvorbis-dev \libxcb1-dev \libxcb-shm0-dev \libxcb-xfixes0-dev \meson \ninja-build \pkg-config \texinfo \wget \yasm \zlib1g-dev
- 如果在安裝上述文件時,有些包沒有成功安裝,可以單獨指定命令進行安裝
- sudo apt-get install xx
安裝依賴環境? 單獨安裝
NASM
- 注意版本要 ≥ 2.13。本文安裝版本是 2.15.05
- 安裝方式
cd ~/ffmpeg_sources && \
wget 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 && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
- 如果使用apt-get安裝nasm,不被認可,也識別不到,參考如下鏈接,進行卸載
- 安裝 nasm 在 Ubuntu 16.04 (Xenial Xerus) 🥇 [InstallOnLinux]?
- sudo apt-get autoremove --purge nasm
libx264
- H.264 視頻編碼器。版本要 ≥ 118
- 需要 ffmpeg 編譯選項配置 --enable-gpl 和 --enable-libx264
- sudo apt-get install libx264-dev
libx265
- H.265/HEVC 視頻編碼器。版本 ≥ 68
- 需要 ffmpeg 編譯選項配置 --enable-gpl 和 --enable-libx265
- sudo apt-get install libx265-dev libnuma-dev
libvpx
- VP8/VP9 視頻編碼、解碼器。版本 ≥ 1.4.0
- 需要 ffmpeg 編譯選項配置 --enable-libvpx
- sudo apt-get install libvpx-dev
libfdk-aac
- AAC 音頻編碼器
- 需要 ffmpeg 編譯選項配置 --enable-libfdk-aac
- 如果配置包含了 --enable-gpl 需要同時添加 --enable-nonfree
- sudo apt-get install libfdk-aac-dev
libmp3lame
- mp3 音頻編碼器。版本 ≥ 3.98.3
- 需要 ffmpeg 編譯選項配置 --enable-libmp3lame
- sudo apt-get install libmp3lame-dev
libopus
- Opus音頻解碼器和編碼器。版本 ≥ 1.1
- 需要 ffmpeg 編譯選項配置 --enable-libopus
- sudo apt-get install libopus-dev
libunistring-dev
- sudo apt-get install libunistring-dev
libdav1d
- AV1 解碼器,比libaom 快得多
- 需要 ffmpeg 編譯選項配置 --enable-libdav1d
- 通過 Python 包索引完成
- 要求0.49.0版本以上
- sudo apt-get install python3-pip
- sudo pip3 install --user meson
- 問題:meson_options.txt:1:0: ERROR: Unknown type feature.錯誤是由于meson版本不匹配導致的
- 解決辦法:1,卸載apt 安裝的meson;2,pip3 install --user meson;3,修改path路徑使得pip安裝的meson優先于系統meson被搜索到??export PATH=~/.local/bin:$PATH
- 檢測:分別在普通用戶和root用戶下使用命令 meson -v 檢測版本,驗證是否一致
- 上述操作無誤之后,繼續執行
git clone --depth=1 https://code.videolan.org/videolan/dav1d.git && \
cd dav1d && \
mkdir build && cd build && \
meson --bindir="/usr/local/bin" .. && \
ninja && \
ninja install
libsvtav1
- AV1 視頻解碼器和編碼器。FFmpeg 只支持編碼器,因此編譯不支持解碼器
- 需要 ffmpeg 編譯選項配置 --enable-libsvtav1
git clone --depth=1 https://github.com/OpenVisualCloud/SVT-AV1
cd SVT-AV1
cd Build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j $(nproc)
sudo make install
編譯FFmpeg
cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 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 -lm" \--ld="g++" \--bindir="$HOME/bin" \--enable-gpl \--enable-gnutls \--enable-libass \--enable-libfdk-aac \--enable-libfreetype \--enable-libmp3lame \--enable-libopus \--enable-libsvtav1 \--enable-libdav1d \--enable-libvorbis \--enable-libvpx \--enable-libx264 \--enable-libx265 \--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r
結果驗證?

參考鏈接
- FFmpeg
- Ubuntu 20.04 搭建 CLion FFmpeg 開發環境_TYYJ-洪偉的博客-CSDN博客
- FFmpeg Ubuntu 20.04 編譯_TYYJ-洪偉的博客-CSDN博客
- ubuntu下更新meson版本_ewerwerwerer的博客-CSDN博客_meson升級
- 安裝 nasm 在 Ubuntu 16.04 (Xenial Xerus) 🥇 [InstallOnLinux]
- https://cache.one/read/16695804
- How to install or uninstall dav1d on Ubuntu 20.10 (Groovy Gorilla) ?
- ubuntu下更新meson版本_ewerwerwerer的博客-CSDN博客_meson升級
- ubuntu上安裝meson & 如何使用meson編譯C代碼_南沙的星星的博客-CSDN博客_meson編譯
- linux - ERROR: SvtAv1Enc not found using pkg-config - Stack Overflow