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