centos 安装ffmpeg

[复制链接]
发表于 2026-10-5 19:10:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

FFmpeg 是处理音视频的瑞士军刀,转码、切片、截图、推流都靠它。在 CentOS 上装 FFmpeg 有三条路:走官方仓库、走第三方仓库、或者自己编译。本文把这三条路的适用条件、命令和踩坑点一次讲清,方便按实际场景挑一条最省事的。

一、先分清你的 CentOS 大版本

CentOS 7 的包管理器是 yum,CentOS 8 及以后是 dnf(dnf 其实是 yum 的下一代实现,命令基本通用,下文统一写 dnf,在 7 上换成 yum 即可)。另外 CentOS Stream 9 / Rocky / Alma 8+ 同样走 dnf 这条线。判断版本用一句命令就行:

cat /etc/redhat-release

这条输出会直接告诉你是大版本 7 还是 8+,后面所有命令都以此为准。

二、方法一:EPEL 仓库直接装

这是最省事的一条路。EPEL(Extra Packages for Enterprise Linux)是 Fedora 社区维护的高质量附加源,官方源里没有的常用软件基本都在这里。

2.1 安装 EPEL 仓库

  • CentOS 8 及更高版本:sudo dnf install epel-release
  • CentOS 7:执行 sudo yum install epel-release,装完后同样会生成 /etc/yum.repos.d/epel.repo

2.2 安装 FFmpeg

EPEL 装好后执行:

sudo dnf install ffmpeg

在部分小版本里 EPEL 提供的是 ffmpeg-free 这个包名,安装时如果提示找不到 ffmpeg,换成 sudo dnf install ffmpeg-free 即可。两者的区别是 free 版本用没有专利风险的编解码实现,普通转码场景完全够用。

2.3 验证

ffmpeg -version

能打印出版本号和配置项就说明装好了。

三、方法二:Negativo17 第三方仓库

EPEL 的 FFmpeg 版本往往偏保守,如果你的业务需要特定的编码器(比如 h264 硬件加速、fdk-aac),可以加 Negativo17 这个仓库。它专门提供较新的多媒体栈。

3.1 添加仓库

sudo dnf install https://copr.fedorainfracloud.org/coprs/negativo17/ffmpeg/repo/epel-8/negativo17-ffmpeg-epel-8.repo

注意这条仓库地址里的 epel-8 段落是跟着系统大版本走的,CentOS 7 上要换成 epel-7,写错会导致仓库不可用。

3.2 安装与依赖处理

加完仓库后同样是 sudo dnf install ffmpeg。这一步可能遇到 GPG 校验或者依赖冲突提示,常见处理是先跑一次 sudo dnf install epel-release 确保 EPEL 已就绪,再执行安装,多数冲突是和 EPEL 里的同类包打架。

四、方法三:源码编译安装

需要特定编译选项、特定版本、或者要启用官方仓库里没有的编码器时才走这条路。编译耗时长(普通机器 15 到 40 分钟不等),但灵活性最高。

4.1 安装编译依赖

sudo dnf install git make cmake gcc gcc-c++ autoconf automake libtool pkgconfig \
  zlib-devel bzip2-devel libpng-devel libjpeg-turbo-devel libtiff-devel \
  freetype-devel gmp-devel mpfr-devel libvorbis-devel libtheora-devel \
  libogg-devel speex-devel lame-devel libvpx-devel x264-devel x265-dev \
  openjpeg-devel opus-devel faac-devel libmp3lame-devel libwebp-devel \
  libxvid-devel libass-devel libfreetype-devel libfribidi-devel \
  libopenjpeg-devel libopenh264-devel libzimg-devel libfontconfig-devel

这里把依赖集中成一条,中间用反斜杠续行,复制执行更省事。

4.2 拉取源码

git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg

默认拉的是 master 分支。要固定版本可以先 git checkout n4.4 之类的 tag 再编译,生产环境建议这么做,避免每次重新编译得到不同结果。

4.3 配置编译选项

./configure --enable-shared --enable-gpl --enable-nonfree --enable-version3 \
  --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfdk-aac \
  --enable-libopus --enable-libvorbis --enable-libvpx --enable-libass \
  --enable-libfreetype --enable-libfribidi --enable-libopenjpeg \
  --enable-libopenh264 --enable-pthreads --enable-libzimg --enable-libwebp \
  --enable-fontconfig

几个开关的含义:--enable-shared 生成动态库,方便其他程序链接;--enable-gpl 是使用 x264/x265 这类 GPL 编码器的前提;--enable-nonfree 是为了启用 fdk-aac 这类非自由实现;--enable-version3 则与部分许可证要求相关。按需裁剪,不要无脑全开,配置项越多编译越慢。

4.4 编译与安装

make && sudo make install

4.5 清理中间产物

make distclean

编译安装的最后一步容易漏:源码安装到 /usr/local/bin,而这个路径默认可能不在 root 用户的 PATH 里,导致 ffmpeg: command not found。执行时补全路径即可:/usr/local/bin/ffmpeg -version。要永久生效,在 /etc/profile.d/ 下加一个 export PATH=/usr/local/binPATH。

五、三条路怎么选

  • 快速用上:走 EPEL,一条 dnf install 完事,适合内网工具机、容器基础镜像。
  • 要新版编码器:加 Negativo17,安装成本略高但版本更新。
  • 要特定编译参数:只能编译,适合有固定产线的转码服务。

六、安装后常用的几个检查

  • 确认可用编码器:ffmpeg -encoders | grep 264,能看到 libx264 说明 h264 编码可用。
  • 确认可用协议:ffmpeg -protocols,rtmp、http、rtsp 这些是否支持一目了然。
  • 查依赖是否健全:ldd /usr/local/bin/ffmpeg,出现 not found 就说明某个 -devel 包漏装了。

三种方式最终装出来的都是同一个工具,差别只在版本新旧和编码器齐全度。先想清楚你要用哪些编码格式,再倒推该走哪条路,能省掉不少返工。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表