Ubuntu24.04编译FFmpeg6.1(支持x264、x265、fdk-acc)

FFmpeg是一个开源的多媒体处理工具集,可以用于处理音频、视频和图片等多种媒体格式。由于其强大的功能和灵活性,FFmpeg被广泛应用在多媒体处理领域,包括音视频编解码、流媒体服务器、视频转码等。FFmpeg7.0 版本移除了 6.0 之前已弃用的 API,无法向下兼容。所以本文编译的版本选择FFmpeg 6.1。

一、安装依赖环境

复制代码
sudo apt install make cmake g++ nasm yasm diffutils pkg-config -y

#下载源码需要
sudo apt install git

#编译fdk-aac需要
sudo apt install autoconf
sudo apt install libtool

二、编译x264

复制代码
#下载x264源码
git clone https://code.videolan.org/videolan/x264.git

#转到x264源码目录下
cd x264

#指定安装在/usr下
./configure --enable-shared --prefix=/usr/

#编译
make -j4

#安装
sudo make install

libx264.so动态库被安装在了/usr/lib下,显示如下

至此,x264编译完成

三、编译x265

复制代码
#下载x265源码
git clone https://bitbucket.org/multicoreware/x265_git.git

#转到x265源码编译目录下
cd x265_git/build/linux

#执行makefile脚本
./make-Makefiles.bash

#编译
make -j4

#安装
sudo make install

看到x265安装目录在 /usr/local/lib下

复制库文件到/usr/lib文件夹下

复制代码
sudo cp /usr/local/lib/libx265.* /usr/lib

至此,x265编译完成

四、编译fdk-aac

复制代码
#下载fak-aac源码
git clone --depth 1 https://gitee.com/mirrors/fdk-aac.git

#转到fdk-aac源码目录
cd fdk-aac

#执行脚本生成configure
./autogen.sh 

#指定安装在/usr下
./configure --enable-shared --prefix=/usr/

#编译
make -j4

#安装
sudo make install

显示安装到/usr/lib

至此,fdk-aac编译完成

五、编译ffmpeg

复制代码
#下载FFmpeg源码
git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git -b release/6.1

#转到FFmpeg源码目录
cd FFmpeg

#配置configure,生成Makefile
./configure --prefix=/usr/ --enable-shared --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265

#编译
make -j4

#安装
sudo make install

最后通过查看编译成功后 FFmpeg 库的编译配置信息,查看我们的编译是否成功

测试执行ffmpeg命令

至此,大功告成!

感谢您的阅读和关注。希望本文能对您有所启发或帮助。如果您还有任何问题或意见,欢迎随时与我交流。祝您生活愉快,事业顺利!

六、相关文章

Windosw下Visual Studio2022编译FFmpeg(支持x264、x265、fdk-acc)-CSDN博客

相关推荐
浆果02073 小时前
NanoTrack C++ — RK3588 实时目标跟踪
c++·目标跟踪·rk3588
ysa0510303 小时前
【并查集】判环
c++·笔记·算法
持力行3 小时前
C/C++ 中的 char*:它标识数组吗?为什么能用下标访问?
c语言·c++
风曦Kisaki4 小时前
#Linux数据库管理Day06:主从同步与MaxScale读写分离
linux·运维·数据库
小楼昨夜又东风1264 小时前
使用python快速拉包
linux
汉克老师5 小时前
GESP2026年6月认证C++六级( 第三部分编程题(2、满二叉树))精讲
c++·深度优先·树形dp·满二叉树·gesp六级·树形dfs
Tipriest_5 小时前
ubuntu创建和更换当前swap大小
linux·运维·ubuntu
踮起脚看烟花6 小时前
多人聊天室实现v2.0
c++·信息与通信
梦帮科技6 小时前
UE5 GAS 实战:用 Gameplay Ability System 搭建「赛博修真」境界与技能体系
c++·人工智能·python·ue5·c#
旖-旎6 小时前
QT系统篇(5)(下)
开发语言·c++·qt