Ubuntu22.04.3LTS源码编译安装ffmpeg6.x

1.官网ffmpeg下载源码 https://ffmpeg.org/download.html#build-windows

安装 libx264 开发库(一个开源的视频压缩库,用于编码视频流为 H.264/MPEG-4 AVC 视频格式)。这是编译 FFmpeg 时如果要支持 H.264 编码必须的。

bash 复制代码
sudo apt install libx264-dev

安装编译工具(如 gcc 和 g++ 等)和一些必需的程序(如 make)。这是编译大多数从源代码构建的软件所必需的。

bash 复制代码
sudo apt install build-essential

一次性安装多个开发库:

bash 复制代码
sudo apt install libx264-dev libx265-dev libaom-dev libvorbis-dev libmp3lame-dev libfdk-aac-dev libass-dev

libx265-dev:提供对 H.265/HEVC 视频编码的支持。

libaom-dev:提供对 AV1 视频编码的支持。

libvorbis-dev:提供对 Vorbis 音频编码的支持。

libmp3lame-dev:提供对 MP3 音频编码的支持。

libfdk-aac-dev:提供对 AAC 音频编码的支持。

libass-dev:提供对字幕的支持。

安装 NASM,一个汇编语言编译器,某些库可能需要通过汇编代码来编译。

bash 复制代码
sudo apt install nasm

编译 FFmpeg

./configure 命令及其参数

这是配置编译选项的命令。它指定了 FFmpeg 要安装到的位置(--prefix=/usr/loacl/ffmpeg6.0),启用了 GPL 许可下的功能(--enable-gpl)。启用了多个库的支持,包括 libx264, libx265, libaom(视频编码库),libvorbis, libmp3lame, libfdk-aac(音频编码库),libass(字幕支持),并启用了 non-free 非免费库 --enable-nonfree(例如 libfdk-aac)。--extra-cflags 和 --extra-ldflags 是编译和链接时的额外选项。

bash 复制代码
./configure --prefix=/usr/local/ffmpeg6.0 --enable-gpl --enable-libx264 --enable-libx265 --enable-libaom --enable-libvorbis --enable-libmp3lame --enable-libfdk-aac --enable-libass --enable-nonfree --extra-cflags="-I/usr/include" --extra-ldflags="-L/usr/local/lib -lx264"

编译源代码。这一步会根据前面 ./configure 命令配置的选项编译 FFmpeg,可能会花费一些时间。

bash 复制代码
make

将编译好的 FFmpeg 程序安装到之前 ./configure 中指定的目录(/usr/loacl/ffmpeg6.0)。这需要超级用户权限,因为这个操作会向系统级别的目录写入数据。

bash 复制代码
sudo make install

将 /usr/local/ffmpeg6.0/bin 添加到 PATH 环境变量中,可以执行以下命令:

bash 复制代码
export PATH="/usr/local/ffmpeg6.0/bin:$PATH"

查看版本

bash 复制代码
ffmpeg -version
相关推荐
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI4 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️5 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年5 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2005 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟5 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬5 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民5 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬5 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L5 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区