在 CentOS 上安装 FFmpeg

在 CentOS 上安装 FFmpeg 可以通过以下两种推荐方法实现(以 CentOS 7/8 为例):

方法一:通过 RPM Fusion 仓库安装(推荐)

bash 复制代码
# 1. 安装 EPEL 仓库
sudo yum install epel-release

# 2. 启用 RPM Fusion 仓库
# CentOS 7:
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

# CentOS 8:
sudo dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
sudo dnf install --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

# 3. 安装 FFmpeg
# CentOS 7:
sudo yum install ffmpeg ffmpeg-devel

# CentOS 8:
sudo dnf install ffmpeg ffmpeg-devel

# 4. 验证安装
ffmpeg -version

方法二:源码编译安装(获取最新版本)

bash 复制代码
# 1. 安装开发工具和依赖库
sudo yum groupinstall "Development Tools"
sudo yum install yasm-devel libass-devel freetype-devel libmp3lame-devel libtheora-devel libvorbis-devel opus-devel libvpx-devel x264-devel x265-devel

# 2. 下载 FFmpeg 源码
wget https://ffmpeg.org/releases/ffmpeg-latest.tar.gz
tar xvf ffmpeg-latest.tar.gz
cd ffmpeg-*

# 3. 配置和编译
./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libopus --enable-libvpx --enable-libx264 --enable-libx265

make -j$(nproc)
sudo make install

# 4. 添加库路径
echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/ffmpeg.conf
sudo ldconfig

# 5. 验证安装
/usr/local/bin/ffmpeg -version

方法三:使用静态二进制文件(免安装)

bash 复制代码
# 1. 下载预编译静态二进制文件(来自官方推荐)
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

# 2. 解压
tar xvf ffmpeg-release-amd64-static.tar.xz
cd ffmpeg-*-static

# 3. 复制到系统路径
sudo cp ffmpeg ffprobe /usr/local/bin/

# 4. 验证安装
ffmpeg -version

验证 FFmpeg 安装

bash 复制代码
# 检查版本
ffmpeg -version

# 测试简单命令
ffmpeg -i input.mp4 -f null -# 无输出运行测试

常见问题解决

  1. 依赖项缺失错误
bash 复制代码
# 安装常见依赖
sudo yum install autoconf automake bzip2 cmake gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel
  1. 编解码器支持问题
  • 确保安装时启用了 --enable-gpl--enable-nonfree
  • 安装缺失的编解码器开发包(如 x264-devel, x265-devel
  1. 权限问题
bash 复制代码
sudo chmod +x /usr/local/bin/ffmpeg
  1. 版本冲突
bash 复制代码
# 移除旧版本
sudo yum remove ffmpeg

添加到 PATH(如果安装到自定义路径)

bash 复制代码
# 将以下行添加到 ~/.bashrc 或 /etc/profile
export PATH="/usr/local/ffmpeg/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH"

# 然后执行
source ~/.bashrc

各方法对比

方法 优点 缺点
RPM Fusion 仓库 安装简单,自动处理依赖 版本可能不是最新
源码编译 可定制性强,获取最新功能 安装复杂,耗时长
静态二进制 无需安装,开箱即用 无法自动更新

建议大多数用户使用 RPM Fusion 仓库安装,需要最新功能时选择源码编译,快速测试使用静态二进制。

相关推荐
草莓熊Lotso1 分钟前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu7 分钟前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
-SGlow-7 分钟前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器
江畔何人初8 分钟前
TCP的三次握手与四次挥手
linux·服务器·网络·网络协议·tcp/ip
Trouvaille ~23 分钟前
【MySQL篇】数据库操作:从创建到管理
linux·数据库·mysql·oracle·xshell·ddl
酸钠鈀25 分钟前
AI WB2 SDK Ubuntu 环境搭建
linux·运维·ubuntu
Robot_Nav29 分钟前
双系统Linux死机解决方法
linux·运维·服务器
加勒比之杰克1 小时前
从阻塞 IO 到 epoll:把 Linux 网络 IO 一次讲透
linux·网络·windows·select·多路转接·epoll·poll
书到用时方恨少!1 小时前
Linux 常用指令使用指南:从入门到“救命”
linux·运维·服务器
默|笙1 小时前
【Linux】线程同步与互斥_同步(1)
linux