FFmpeg 6.1 编译安装过程全记录 (Ubuntu/Debian 系统)
本次安装的目标是编译一个功能齐全、支持多种音视频编码格式(特别是 H.265/HEVC)的 静态链接 FFmpeg 可执行文件。
第一步:安装编译依赖项
为了成功编译 FFmpeg,系统需要具备基础的编译工具链和各类开发库。
更新软件包列表并安装基础工具:
bash
sudo apt update
sudo apt install -y autoconf automake build-essential libtool pkg-config yasm zlib1g-dev
build-essential: 提供 gcc, g++, make 等基础编译工具。
autoconf, automake, libtool: 用于生成 configure 脚本和管理库的链接。
pkg-config: 用于查找已安装的库信息(解决您之前遇到的 x265 not found 错误的关键工具)。
yasm: 一个高效的汇编器,FFmpeg 中的许多优化代码需要它来编译。
zlib1g-dev: 提供 zlib 压缩库的开发文件。
安装 FFmpeg 所需的外部编码库开发文件:
bash
sudo apt install -y
libgnutls28-dev \ # 支持 GnuTLS 网络传输加密协议
libaom-dev \ # 支持 AOMedia Video 1 (AV1) 编码
libass-dev \ # 支持 ASS/SSA 字幕渲染
libfreetype-dev \ # 支持 FreeType 字体渲染
libmp3lame-dev \ # 支持 MP3 音频编码
libopus-dev \ # 支持 Opus 音频编码
libtheora-dev \ # 支持 Theora 视频编码
libvorbis-dev \ # 支持 Vorbis 音频编码
libvpx-dev \ # 支持 VP8/VP9 视频编码
libx264-dev \ # 支持 H.264/AVC 视频编码
libx265-dev \ # 支持 H.265/HEVC 视频编码(动态链接库)
libx265-static-dev # 支持 H.265/HEVC 视频编码(静态链接库,解决您之前报错的关键)
特别说明:libx265-dev 提供动态链接库,而 libx265-static-dev 提供静态链接库。因为您在 configure 中使用了 --pkg-config-flags=“–static”,所以必须安装 libx265-static-dev。
第二步:获取并准备 FFmpeg 源代码
进入工作目录并下载源码:
bash
cd ~/apps
wget https://ffmpeg.org/releases/ffmpeg-6.1.tar.gz
tar -xzf ffmpeg-6.1.tar.gz
cd ffmpeg-6.1
生成 configure 脚本:
从官网下载的发布版源码通常已经包含了 configure 脚本。但如果是从 Git 克隆的,则需要手动生成。为了确保万无一失,可以执行:
bash
./autogen.sh
此步骤会检查系统环境并生成编译配置脚本 configure。
第三步:配置编译参数
这是最关键的一步,决定了最终生成的 FFmpeg 支持哪些功能以及如何链接库。
bash
./configure
–prefix=/home/lianggong/apps/ffmpeg \ # 指定安装目录,便于管理
–pkg-config-flags=–static \ # 强制使用静态链接,使二进制文件不依赖系统库
–enable-gpl \ # 启用 GPL 许可证代码(如 x264, x265)
–enable-gnutls \ # 启用 GnuTLS 支持
–enable-libaom \ # 启用 libaom (AV1) 支持
–enable-libass \ # 启用 libass (字幕) 支持
–enable-libfreetype \ # 启用 libfreetype (字体) 支持
–enable-libmp3lame \ # 启用 libmp3lame (MP3) 支持
–enable-libopus \ # 启用 libopus (Opus) 支持
–enable-libtheora \ # 启用 libtheora (Theora) 支持
–enable-libvorbis \ # 启用 libvorbis (Vorbis) 支持
–enable-libvpx \ # 启用 libvpx (VP8/VP9) 支持
–enable-libx264 \ # 启用 libx264 (H.264) 支持
–enable-libx265 \ # 启用 libx265 (H.265) 支持
–enable-nonfree # 启用非自由代码(如 libx264, libx265)
配置成功的关键:在安装了 libx265-static-dev 后,–pkg-config-flags=–static 参数才能正确找到静态库,从而解决 ERROR: x265 not found 的错误。
第四步:编译与安装
编译源代码:
bash
make -j(nproc)−j(nproc) -j(nproc)−j(nproc) 选项会使用所有可用的 CPU 核心进行并行编译,极大加快编译速度。
安装编译好的文件:
bash
sudo make install
这条命令会将编译好的 ffmpeg, ffprobe 等可执行文件、库文件和文档安装到 --prefix 指定的目录(/home/lianggong/apps/ffmpeg)中。
第五步:验证安装
检查安装路径:
bash
ls /home/lianggong/apps/ffmpeg/bin
应该能看到 ffmpeg, ffprobe, ffplay 等可执行文件。
查看版本和配置信息:
bash
/home/lianggong/apps/ffmpeg/bin/ffmpeg -version
输出应显示 ffmpeg version 6.1,并且在 configuration: 一行中,应包含您之前设置的所有 --enable-libxxx 选项,这证明所有外部库已成功链接。
检查编码器支持:
bash
/home/lianggong/apps/ffmpeg/bin/ffmpeg -encoders | grep libx265
如果输出中包含 libx265,则说明 H.265 编码器支持已正确启用。
总结与问题回顾
您的安装过程非常典型,遇到了两个常见问题并成功解决了:
库查找问题:通过安装 libx265-static-dev 并正确设置 PKG_CONFIG_PATH(虽然最终安装到系统路径后无需手动设置)解决了 x265 not found 错误。
构建系统问题:通过运行 ./autogen.sh 生成了缺失的 configure 脚本。
现在,您已经拥有一个功能强大的、自定义编译的 FFmpeg 6.1,可以开始您的音视频处理工作了!