如何将x264 x265的动态库编译入Linux系统中的FFmpeg源码 - x264库编译

0 前言

在Linux操作系统中实现x264库编译、x265库编译,并将他们编译入FFmpeg中。作为一个工作记录,方便后面操作。

Ubuntu 系统编译 x264 库完整步骤

你需要在 Ubuntu 系统中编译 x264 库,以下是分步详细操作,涵盖依赖安装、源码获取、配置编译及安装验证的全流程:

一、安装编译依赖工具

首先需要安装编译 x264 所需的基础工具链和依赖库,打开终端执行以下命令:

bash 复制代码
# 更新软件源索引(可选,确保获取最新依赖版本)
sudo apt update

# 安装编译必备工具(gcc、g++、make等)及依赖
sudo apt install -y build-essential git pkg-config
  • build-essential:包含 gcc、g++、make 等核心编译工具,是 Linux 下编译源码的基础
  • git:用于克隆 x264 官方源码仓库
  • pkg-config:用于编译时查找依赖库路径,辅助配置 x264 编译参数

二、获取 x264 源码

x264 的官方源码托管在 VideoLAN 仓库,通过 git 克隆获取最新源码:

bash 复制代码
# 克隆 x264 源码仓库(默认克隆到当前目录的 x264 文件夹)
git clone https://git.videolan.org/git/x264.git

# 进入 x264 源码目录(后续操作均在此目录下执行)
cd x264

三、配置 x264 编译参数(核心步骤)

使用源码目录下的 configure 脚本配置编译选项,这里提供两种常用配置方案,你可根据需求选择:

方案1:通用编译(生成动态库+静态库,支持系统全局调用)

适合大多数场景,编译后生成 .so 动态库和 .a 静态库,并安装到系统默认路径(/usr/local/):

bash 复制代码
./configure --enable-shared --enable-static --prefix=/usr/local

也可以先生成在本源码目录./out中

bash 复制代码
./configure --enable-shared --enable-static --prefix=./out

参数说明:

  • --enable-shared:启用动态库(.so)编译(可选,若仅需静态库可移除该参数)
  • --enable-static:启用静态库(.a)编译(可选,若仅需动态库可移除该参数)
  • --prefix=/usr/local:指定安装路径(默认也是此路径,可自定义为其他路径如 ~/local/x264

方案2:高性能编译(针对本地CPU优化,推荐生产环境)

额外添加 CPU 优化参数,充分利用本地硬件性能,编译出更高效的库:

bash 复制代码
./configure --enable-shared --enable-static --prefix=/usr/local --enable-pic --cpu=native

也可以先生成在本源码目录./out中

bash 复制代码
./configure --enable-shared --enable-static --prefix=./out --enable-pic --cpu=native

额外参数说明:

  • --enable-pic:生成位置无关代码,便于后续将 x264 库链接到其他动态库中
  • --cpu=native:自动检测本地 CPU 型号,启用针对性优化(仅在当前机器使用时推荐)

配置成功标识

终端输出末尾会显示 x264 配置信息(如支持的功能、安装路径、库类型等),无报错即配置成功。

四、编译 x264 源码

使用 make 命令进行编译,可通过 -j 参数指定编译线程数(提升编译速度,建议设为 CPU 核心数,如 4 核则 -j4):

bash 复制代码
# 多线程编译(推荐,替换 4 为你的 CPU 核心数,可通过 nproc 命令查看核心数)
make -j$(nproc)

编译过程中终端会输出编译日志,无报错(无 error 提示)即编译成功,此时源码目录下会生成对应的库文件。

五、安装 x264 库

编译完成后,将库文件、头文件等安装到之前 configure 指定的 --prefix 路径下,需要使用 sudo 提升权限(若安装到用户目录可无需 sudo):

bash 复制代码
sudo make install

安装成功后,系统会自动将:

  • 头文件安装到 /usr/local/include/x264/
  • 库文件安装到 /usr/local/lib/
  • 配置文件安装到 /usr/local/lib/pkgconfig/

六、配置动态库链接路径(解决运行时库找不到问题)

编译安装后,系统默认可能无法识别 x264 动态库的路径,需要手动配置:

bash 复制代码
# 1. 将 x264 库路径写入系统动态库配置文件
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/x264.conf

# 2. 更新动态库缓存,使配置生效
sudo ldconfig

七、验证 x264 库安装成功

通过以下两种方式验证安装是否有效:

方式1:查看 x264 版本

bash 复制代码
# 查看 x264 工具版本(同时验证库可用)
x264 --version

若终端输出 x264 的版本信息、编译参数等,说明安装成功。

方式2:通过 pkg-config 验证库配置

bash 复制代码
# 查看 x264 库的编译链接信息
pkg-config --libs --cflags x264

若终端输出 x264 的头文件路径(-I 参数)和库文件路径(-L 参数及 -lx264),说明库配置正常,可用于后续其他项目的编译链接。

补充说明

  1. 若需卸载 x264 库:进入源码目录执行 sudo make uninstall 即可
  2. 若编译时需要关闭某些功能(如禁用汇编优化):可在 configure 时添加 --disable-asm 参数
  3. 若自定义安装路径(如 ~/local/x264):需在验证时指定路径,或添加环境变量 PKG_CONFIG_PATH=~/local/x264/lib/pkgconfig
相关推荐
赵民勇2 小时前
awk用法与技巧详解
linux·shell
Lueeee.3 小时前
正点原子 ATK-DLRK3568 开发板:按键中断 + 工作队列传参实验(完整版流程 + 功能解释)
linux
小码吃趴菜3 小时前
进程间通信 管道-信号量
linux
AndyHeee3 小时前
【瑞芯微rk3576刷ubuntu根文件系统容量不足问题解决】
linux·数据库·ubuntu
李昊哲小课3 小时前
Ubuntu 24.04 在线安装 Redis 8.x 完整教程
linux·redis·ubuntu
sao.hk3 小时前
ubuntu2404,vbox,全屏显示
linux·运维·服务器
危笑ioi3 小时前
linux配置nfs在ubuntu22.04
linux·运维·服务器
社会零时工3 小时前
【ROS2】海康相机ROS2设备服务节点开发
linux·c++·相机·ros2
东城绝神4 小时前
《Linux运维总结:Ubuntu 22.04配置chrony时间同步服务》
linux·运维·ubuntu·chrony