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

相关推荐
阿明66 分钟前
Linux进程【Linux】
linux·运维·服务器
Android系统攻城狮19 分钟前
Linux Gstreamer深度解析之gst_audio_resampler_update调用流程与实战(三十)
linux·运维·服务器·gstreamer音视频·音视频进阶
程序员老陆26 分钟前
std::experimental::when_any 深度解析:等待“第一个完成”的异步组合原语
c++·多线程
qetfw29 分钟前
Linux tcpdump 抓包实战:网卡、主机、端口过滤与 PCAP 分析
linux·tcpdump
pilifeng138 分钟前
Ubuntu Linux 目录结构详解
linux·ubuntu
电棍23344 分钟前
ubuntu网卡失效
linux
律宏阔1 小时前
VMware 能识别 USB 设备,但无法连接(灰色)
linux
Rabitebla1 小时前
【Linux系统编程】指令(三):创建、删除、复制、移动、看内容
linux·数据结构·c++·算法
程序员老陆1 小时前
CMake 常用关键字与命令全景:从 set到 target_link_options的现代工程视角
c++·cmake·程序开发
AR-26710-1 小时前
Linux Day9——复习第一部分(实操产出)
linux