创建文件夹
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
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
结果验证
参考链接