在 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 仓库安装,需要最新功能时选择源码编译,快速测试使用静态二进制。

相关推荐
我家大宝最可爱10 分钟前
linux编译基础知识-编译时路径和运行时路径
linux·运维·服务器
某某1 小时前
在Centos7中安装gitlab
linux·运维·gitlab
cici158742 小时前
linux中HADOOP_HOME和JAVA_HOME删除后依然指向旧目录
java·linux·hadoop
先鱼鲨生3 小时前
【Linux】System V - 责任链模式与消息队列
linux·责任链模式
快快网络-三七4 小时前
第二篇:Linux 文件系统操作:从基础到进阶
linux·运维·服务器·centos·快快网络
Doris_LMS4 小时前
Linux的访问权限(保姆级别)
linux·运维·服务器·面试
玖剹4 小时前
Linux文件系统:从内核到缓冲区的奥秘
linux·c语言·c++·笔记·ubuntu
是阿建吖!4 小时前
【Linux | 网络】传输层(UDP和TCP)
linux·网络·udp·tcp
dessler4 小时前
RabbitMQ-镜像队列(Mirrored Queues)
linux·运维·rabbitmq
瑾曦4 小时前
Docker相关命令
linux