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

0 前言

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

1 下载ffmpeg

bash 复制代码
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
bash 复制代码
cd ffmpeg
git checkout n4.3

2 编译ffmpeg

安装必要的依赖库

bash 复制代码
sudo apt update
sudo apt install -y libsdl2-dev  # ffplay 依赖的 SDL2 库
sudo apt install -y build-essential yasm cmake libtool libc6 libc6-dev unzip wget libfdk-aac-dev libopus-dev
bash 复制代码
./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --enable-sdl2 --enable-libfdk-aac --enable-libopus --enable-vaapi --enable-hwaccel=h264_vaapi --enable-hwaccel=hevc_vaapi --enable-gpl --enable-libx264 --enable-libx265 --enable-pthreads --enable-nonfree
make -j4
sudo make install

3 配置路径

bash 复制代码
sudo echo "export PATH=/usr/local/ffmpeg/bin:\$PATH" >> /etc/profile
source /etc/profile 
bash 复制代码
echo "/usr/local/ffmpeg/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf
sudo ldconfig

4 验证是否集成成功

4.1 验证 FFmpeg 是否识别 x264、x265

bash 复制代码
ffmpeg -encoders | grep -E "x264|x265"

若输出类似以下内容,说明集成成功:

bash 复制代码
ffmpeg version n4.3 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04.2)
  configuration: --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --enable-sdl2 --enable-libfdk-aac --enable-libopus --enable-vaapi --enable-hwaccel=h264_vaapi --enable-hwaccel=hevc_vaapi --enable-gpl --enable-libx264 --enable-libx265 --enable-pthreads --enable-nonfree
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
 V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V..... libx265              libx265 H.265 / HEVC (codec hevc)

4.2 测试编码功能(可选,实际验证可用性)

bash 复制代码
# 使用x264编码视频(输出h264格式)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium output_h264.mp4

# 使用x265编码视频(输出h265格式,更高压缩比)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium output_h265.mp4
相关推荐
lihao lihao40 分钟前
软硬链接
linux·运维·服务器
YY&DS1 小时前
Qt 嵌入 CEF 在 Linux 下必须设置 `QT_XCB_GL_INTEGRATION=xcb_egl才能加载网页
linux·开发语言·qt
辰风沐阳1 小时前
ThinkPHP8.1 + think-swoole 4.1 使用指南(保姆级教程)
linux·后端·swoole
mounter6252 小时前
迈向硬件级无缝热升级:Linux 内核 VFIO 与 IOMMU 持久化技术的演进之路
linux·服务器·内存管理·kernel
晚风吹红霞2 小时前
Linux软件包管理器详解 —— yum与apt的使用及软件生态
linux·运维·服务器
曦夜日长2 小时前
Linux系统篇,进程概念(一):计算机体系、操作系统的认识、程序的加载过程
linux·运维·网络
似水এ᭄往昔2 小时前
【Linux网络编程】--Socket编程预备
linux·服务器·网络
皮卡狮2 小时前
环境变量详解
linux
致Great3 小时前
Claude Code 上线 Dynamic Workflows:一句话调度 1000 个子智能体并行干活
java·linux·服务器
满天星83035773 小时前
【Git】原理及使用(三)(分支管理)
linux·git