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博客

相关推荐
legend_jz几秒前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py1 分钟前
【Linux】-学习笔记04
linux·笔记·学习
黑牛先生3 分钟前
【Linux】进程-PCB
linux·运维·服务器
嘿BRE10 分钟前
【C++】几个基本容器的模拟实现(string,vector,list,stack,queue,priority_queue)
c++
友友马21 分钟前
『 Linux 』网络层 - IP协议(一)
linux·网络·tcp/ip
ö Constancy1 小时前
c++ 笔记
开发语言·c++
猿java1 小时前
Linux Shell和Shell脚本详解!
java·linux·shell
fengbizhe1 小时前
笔试-笔记2
c++·笔记
徐霞客3201 小时前
Qt入门1——认识Qt的几个常用头文件和常用函数
开发语言·c++·笔记·qt
fpcc1 小时前
redis6.0之后的多线程版本的问题
c++·redis