搞音视频开发,FFmpeg 是绕不过去的坎。不管是直播推流、视频转码、音频处理,还是搭建流媒体服务器,底层都有 FFmpeg 的身影。但很多人卡在第一步——装不上。各种依赖报错、编译失败、环境变量配不对,折腾一天还在原地。
本文手把手教你从源码编译安装 FFmpeg,覆盖 CentOS 和 Ubuntu 两大主流发行版,每个命令都有详细解释,最后还提供一键安装脚本,拿过去直接跑就行。
一、FFmpeg 是什么?
FFmpeg 是全球最强大的开源音视频处理框架,由 FFmpeg 项目团队维护,支持几乎所有的音视频格式和编码器。
一句话概括:FFmpeg 是音视频领域的"瑞士军刀",能解码、能编码、能转码、能推流、能拉流、能截图、能加水印,啥都能干。
FFmpeg 核心组件
组件 | 说明 |
ffmpeg | 命令行工具,音视频转码、处理的核心程序 |
ffplay | 简易媒体播放器,基于 SDL 库 |
ffprobe | 多媒体流分析工具,查看视频信息 |
libavcodec | 编解码库,支持 500+ 编解码器 |
libavformat | 封装/解封装库,处理 MP4/FLV/MKV 等容器格式 |
libavfilter | 滤镜库,加水印、缩放、去噪等 |
libavutil | 通用工具库,哈希、数学运算、内存管理等 |
libswscale | 图像缩放和像素格式转换库 |
libswresample | 音频重采样库 |
安装方式对比
方式 | 优点 | 缺点 | 推荐度 |
源码编译 | 功能最全,可定制编码器 | 编译时间长 | 推荐 |
apt/yum 安装 | 简单快速 | 版本旧,缺少编码器 | 不推荐 |
Snap 安装 | 版本较新 | 权限受限,路径不灵活 | 一般 |
静态编译版本 | 免编译,开箱即用 | 不可定制 | 备选 |
生产环境建议用源码编译,可以启用 x264、x265、libmp3lame、libopus 等编码器,功能完整可控。
安装流程概览
二、环境准备
2.1 系统要求
项目 | 最低要求 | 推荐配置 |
操作系统 | CentOS 7+ / Ubuntu 18.04+ | CentOS 8+ / Ubuntu 22.04+ |
CPU | 1 核 | 4 核+(编译加速) |
内存 | 1 GB | 4 GB+ |
磁盘 | 2 GB(编译临时空间) | 10 GB+ |
网络 | 需要下载源码和依赖 | — |
2.2 检查系统版本
# 查看系统发行版 cat /etc/os-release # 查看内核版本 uname -r # 查看 CPU 核心数(编译时用来加速) nproc 2.3 更新系统(可选但建议)
# CentOS / RHEL / Rocky Linux sudo yum update -y # Ubuntu / Debian sudo apt-get update && sudo apt-get upgrade -y 为什么要更新? 确保系统已有的库是最新版本,避免编译时出现兼容性问题。
三、安装编译依赖
这是整个过程中最关键的一步。如果依赖没装全,后面编译一定报错。
3.1 安装基础编译工具
CentOS / RHEL / Rocky Linux:
# 安装 EPEL 仓库(Extra Packages for Enterprise Linux) # EPEL 是 Fedora 项目维护的高质量软件源,包含很多基础源没有的包 sudo yum install -y epel-release # 安装编译工具链 # gcc: C 编译器 # gcc-c++: C++ 编译器 # make: 构建工具 # cmake: 跨平台构建工具(部分库需要) # autoconf/automake/libtool: 自动化构建配置工具 # git: 版本管理,部分库需要从 GitHub 拉取 # nasm/yasm: 汇编编译器,x264 等编码器的汇编优化依赖它们 sudo yum install -y gcc gcc-c++ make cmake autoconf automake libtool git wget tar bzip2 nasm yasm pkg-config Ubuntu / Debian:
# 更新软件包索引 sudo apt-get update # build-essential: 包含 gcc、g++、make 等基础编译工具的元包 # nasm/yasm: 汇编编译器,提升 x264/x265 编码速度 # pkg-config: 编译时查找库的路径和编译参数的工具 sudo apt-get install -y build-essential cmake autoconf automake libtool git wget tar bzip2 nasm yasm pkg-config 3.2 安装编解码器依赖库
这些库决定了 FFmpeg 支持哪些编码格式。缺了哪个,FFmpeg 编译时就无法启用对应的编码器。
CentOS / RHEL / Rocky Linux:
# zlib: 数据压缩库,很多格式依赖它 # bzip2: 压缩库 # openssl: 加密库,RtmpS 等协议需要 sudo yum install -y zlib-devel bzip2-devel openssl-devel # libx264: H.264 视频编码器(最常用的高质量编码器) sudo yum install -y libx264-devel # libx265: H.265/HEVC 视频编码器(更高压缩率,新一代标准) sudo yum install -y libx265-devel # lame: MP3 音频编码器(最广泛使用的音频格式) sudo yum install -y lame-devel # libass: 字幕渲染库(SSA/ASS 字幕格式) sudo yum install -y libass-devel # FreeType: 字体渲染引擎( burned-in 字幕需要) # fribidi: 双向文字排版库(阿拉伯语、希伯来语等) sudo yum install -y freetype-devel fribidi-devel # libvorbis: OGG Vorbis 音频编码器(开源高品质音频格式) sudo yum install -y libvorbis-devel # libtheora: Theora 视频编码器(OGG 容器的视频编码) sudo yum install -y libtheora-devel # Opus: Opus 音频编码器(低延迟、高品质,WebRTC 推荐编码器) sudo yum install -y opus-devel Ubuntu / Debian:
sudo apt-get install -y \ zlib1g-dev libbz2-dev libssl-dev \ libx264-dev libx265-dev libnuma-dev \ libmp3lame-dev libass-dev \ libfreetype6-dev libfribidi-dev \ libvorbis-dev libtheora-dev \ libopus-dev 参数说明:-dev(Ubuntu)或 -devel(CentOS)后缀的包是开发头文件和静态库,编译时需要。运行时只需要不带后缀的包。
3.3 依赖库速查表
库名 | 功能 | 对应编码器 | CentOS 包名 | Ubuntu 包名 |
x264 | H.264 编码 | libx264 | libx264-devel | libx264-dev |
x265 | H.265 编码 | libx265 | libx265-devel | libx265-dev |
lame | MP3 编码 | libmp3lame | lame-devel | libmp3lame-dev |
opus | Opus 编码 | libopus | opus-devel | libopus-dev |
vorbis | Vorbis 编码 | libvorbis | libvorbis-devel | libvorbis-dev |
ass | ASS 字幕 | libass | libass-devel | libass-dev |
freetype | 字体渲染 | libfreetype | freetype-devel | libfreetype6-dev |
四、下载 FFmpeg 源码
4.1 选择下载方式
方式一:官网下载(推荐)
# 进入临时目录 cd /tmp # 下载指定版本的源码包 # -c: 断点续传,下载中断后可以继续 wget -c # 解压 # -x: 解压 # -j: 处理 bzip2 压缩 # -f: 指定文件 tar -xjf ffmpeg-7.1.1.tar.bz2 # 进入源码目录 cd ffmpeg-7.1.1 方式二:Git 克隆(获取最新开发版)
# --depth 1: 只拉取最近一次提交,节省下载时间和磁盘空间 git clone --depth 1 cd ffmpeg 建议生产环境使用稳定版本,开发版可能有未修复的 bug。可在 查看所有版本。
4.2 版本选择建议
版本 | 发布日期 | 推荐场景 |
7.1.x | 2024 | 最新稳定版,功能最全 |
6.1.x | 2023 | 长期支持版本,稳定性好 |
5.1.x | 2022 | 老项目兼容 |
五、编译配置(./configure)
这是最关键的一步,决定了 FFmpeg 的功能和性能。
5.1 configure 核心参数详解
./configure \ --prefix=/usr/local/ffmpeg \ --enable-GPL \ --enable-nonfree \ --enable-shared \ --enable-pthreads \ --enable-libx264 \ --enable-libx265 \ --enable-libmp3lame \ --enable-libass \ --enable-libfreetype \ --enable-libvorbis \ --enable-libtheora \ --enable-libopus \ --enable-small \ --enable-version3 \ --extra-cflags="-I/usr/local/ffmpeg/include" \ --extra-ldflags="-L/usr/local/ffmpeg/lib" 5.2 参数逐条解释
参数 | 说明 |
--prefix=/usr/local/ffmpeg | 安装路径,所有文件会安装到这个目录下 |
--enable-gpl | 启用 GPL 许可的组件(x264、x265 属于 GPL),必须开启 |
--enable-nonfree | 启用非免费组件,某些编码器需要 |
--enable-shared | 编译动态链接库(.so),其他程序可以调用 FFmpeg 的库 |
--enable-pthreads | 启用多线程支持,利用多核 CPU 加速编解码 |
--enable-libx264 | 启用 H.264 编码器,视频转码必备 |
--enable-libx265 | 启用 H.265/HEVC 编码器,同画质体积减少约 40% |
--enable-libmp3lame | 启用 MP3 编码器 |
--enable-libass | 启用 ASS/SSA 字幕渲染 |
--enable-libfreetype | 启用 FreeType 字体引擎(字幕烧录需要) |
--enable-libvorbis | 启用 Vorbis 音频编码器 |
--enable-libtheora | 启用 Theora 视频编码器 |
--enable-libopus | 启用 Opus 音频编码器 |
--enable-small | 优化生成文件大小,去除冗余符号表 |
--enable-version3 | 启用 (L)GPL v3 许可的组件 |
--extra-cflags | 额外的 C 编译参数,指定头文件搜索路径 |
--extra-ldflags | 额外的链接参数,指定库文件搜索路径 |
GPL 注意事项:启用 --enable-gpl 后,使用 FFmpeg 的程序也需要遵循 GPL 协议开源。如果需要闭源商用,去掉 --enable-gpl 和 --enable-libx264 等 GPL 组件。
5.3 其他常用可选参数
# 启用 NVIDIA GPU 硬件加速(需要安装 NVIDIA 驱动和 CUDA) --enable-cuda-nvcc --enable-cuvid --enable-nvenc # 启用 Intel QSV 硬件加速 --enable-libmfx # 启用 VAAPI(Linux 通用硬件加速) --enable-vaapi # 禁用不需要的功能,减小体积 --disable-doc # 不生成文档 --disable-htmlpages # 不生成 HTML 文档 --disable-manpages # 不生成 man 手册 --disable-podpages # 不生成 POD 文档 --disable-txtpages # 不生成文本文档 # 编译优化 --enable-optimizations # 启用编译器优化 --enable-stripping # 去除调试符号 六、编译与安装
6.1 编译
# 使用多核编译,大幅缩短时间 # $(nproc) 会自动获取 CPU 核心数 # 例如 4 核 CPU 就相当于 make -j4,同时运行 4 个编译任务 make -j$(nproc) 编译时间参考:4 核 CPU 约 10-15 分钟,单核约 30-60 分钟。
6.2 安装
# 将编译好的文件安装到 --prefix 指定的目录 # 包括可执行文件、头文件、动态库、pkg-config 文件等 sudo make install 安装后的目录结构:
/usr/local/ffmpeg/ ├── bin/ │ ├── ffmpeg # 主程序 │ ├── ffplay # 播放器 │ └── ffprobe # 分析工具 ├── include/ # 头文件(开发用) │ └── libavcodec/ │ └── libavformat/ │ └── ... ├── lib/ # 动态链接库 │ ├── libavcodec.so │ ├── libavformat.so │ └── ... ├── lib64/ # 64位库 └── share/ └── ffmpeg/ # 预设文件 七、配置环境变量
安装完成后,需要让系统能找到 FFmpeg 的可执行文件和动态库。
7.1 配置动态链接库路径
# 将 FFmpeg 库路径写入 ld 配置 # ldconfig 会读取这个文件,把 /usr/local/ffmpeg/lib 加入动态链接器的搜索路径 # 这样其他程序运行时就能找到 libavcodec.so 等库文件 echo "/usr/local/ffmpeg/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf # 刷新动态链接库缓存 # -v: 显示详细过程,可以看到新添加的库被识别 sudo ldconfig -v 为什么要配 ldconfig? 如果不配,运行 ffmpeg 时会报 error while loading shared libraries: libavcodec.so 这样的错误。
7.2 配置 PATH 环境变量
方式一:写入系统 profile(推荐,所有用户生效)
# 创建环境变量脚本到 profile.d 目录 # 系统启动时会自动执行这个目录下的 .sh 文件 sudo tee /etc/profile.d/ffmpeg.sh << 'EOF' export FFMPEG_HOME=/usr/local/ffmpeg export PATH=$FFMPEG_HOME/bin:$PATH EOF # 立即生效 source /etc/profile.d/ffmpeg.sh 方式二:写入用户 ~/.bashrc(仅当前用户)
echo 'export FFMPEG_HOME=/usr/local/ffmpeg' >> ~/.bashrc echo 'export PATH=$FFMPEG_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc 两种方式的区别:/etc/profile.d/ 对所有用户生效,~/.bashrc 只对当前用户生效。服务器环境推荐用方式一。
八、验证安装
8.1 基础验证
# 查看 FFmpeg 版本和编译配置 ffmpeg -version 预期输出类似:
ffmpeg version 7.1.1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 8.5.0 (GCC) configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-shared ... 8.2 查看支持的编码器
# 查看所有可用的编码器 # -encoders: 列出所有编码器 ffmpeg -encoders # 查看是否支持 H.264 编码 ffmpeg -encoders | grep x264 # 查看是否支持 H.265 编码 ffmpeg -encoders | grep x265 # 查看是否支持 MP3 编码 ffmpeg -encoders | grep mp3lame # 查看是否支持 Opus 编码 ffmpeg -encoders | grep opus 8.3 查看支持的解码器
ffmpeg -decoders | grep h264 8.4 查看支持的容器格式
ffmpeg -formats | grep mp4 九、快速测试:第一个转码命令
# 基础转码:将 input.avi 转为 output.mp4 # -i input.avi: 指定输入文件 # -c:v libx264: 视频使用 H.264 编码 # -c:a aac: 音频使用 AAC 编码 # output.mp4: 输出文件 ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4 # 查看视频信息 ffprobe -v quiet -print_format json -show_streams output.mp4 # 从视频中截取一张图片(第 5 秒) # -ss 5: 跳转到第 5 秒 # -frames:v 1: 只取一帧 ffmpeg -i input.mp4 -ss 5 -frames:v 1 thumbnail.jpg # 提取视频中的音频 # -vn: 不处理视频 # -acodec libmp3lame: 使用 MP3 编码 ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3 十、一键安装脚本
不想一步步操作?直接用一键脚本:
# 下载脚本(假设你已将脚本上传到服务器) # 或者直接复制上面的 ffmpeg-install.sh 内容到服务器 # 赋予执行权限 chmod +x ffmpeg-install.sh # 以 root 权限执行 sudo bash ffmpeg-install.sh 脚本功能说明
功能 | 说明 |
系统检测 | 自动识别 CentOS/Ubuntu/Debian,安装对应依赖 |
源码下载 | 自动下载 FFmpeg 7.1.1 稳定版,支持断点续传 |
编译配置 | 预置常用编码器(x264/x265/mp3lame/opus/vorbis/ass) |
多核编译 | 自动检测 CPU 核心数,并行编译加速 |
环境配置 | 自动配置 ldconfig 和 PATH 环境变量 |
安装验证 | 编译完成后自动验证,失败则提示查看日志 |
日志记录 | 全程记录到 /tmp/ffmpeg-install.log,方便排错 |
临时清理 | 安装完成后自动清理源码和压缩包 |
十一、常见问题与解决方案
问题 1:yasm/nasm not found
# CentOS sudo yum install -y nasm yasm # Ubuntu sudo apt-get install -y nasm yasm 问题 2:ERROR: libx264 not found
# 原因:x264 开发包没装或路径不对 # CentOS sudo yum install -y libx264-devel # Ubuntu sudo apt-get install -y libx264-dev # 如果系统源没有,可以从源码编译 x264 cd /tmp git clone --depth 1 cd x264 ./configure --prefix=/usr/local --enable-shared --enable-static make -j$(nproc) && sudo make install sudo ldconfig 问题 3:error while loading shared libraries: libavcodec.so
# 原因:动态库路径没配或没生效 echo "/usr/local/ffmpeg/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf sudo ldconfig # 验证库是否能被找到 ldconfig -p | grep libavcodec 问题 4:ffmpeg: command not found
# 原因:PATH 没配或没生效 source /etc/profile.d/ffmpeg.sh # 或者直接用绝对路径 /usr/local/ffmpeg/bin/ffmpeg -version 问题 5:编译时间太长
# 查看核心数 nproc # 使用更多核心编译 make -j8 # 8核 # 如果内存不够,减少并行数 make -j2 # 只用2核 问题 6:CentOS 7 的 GCC 版本太旧
# CentOS 7 默认 GCC 4.8,FFmpeg 新版本需要 GCC 6+ # 安装 devtoolset-8(GCC 8) sudo yum install -y centos-release-scl sudo yum install -y devtoolset-8 # 临时启用(仅当前终端生效) scl enable devtoolset-8 bash # 验证 gcc --version 十二、卸载 FFmpeg
如果需要卸载源码编译的 FFmpeg:
# 进入源码目录(需要保留或重新解压) cd /tmp/ffmpeg-7.1.1 # 执行卸载 sudo make uninstall # 清理环境变量 sudo rm /etc/profile.d/ffmpeg.sh sudo rm /etc/ld.so.conf.d/ffmpeg.conf sudo ldconfig # 清理安装目录 sudo rm -rf /usr/local/ffmpeg 十三、总结
步骤 | 命令 | 耗时 |
安装依赖 | yum install / apt-get install | 2-5 分钟 |
下载源码 | wget | 1-3 分钟 |
编译配置 | ./configure | 1-2 分钟 |
编译 | make -j$(nproc) | 10-30 分钟 |
安装 | make install | 1 分钟 |
配置环境 | ldconfig + export | 1 分钟 |
合计 | — | 15-40 分钟 |
关键点回顾:
- 依赖要装全 — 缺了哪个库,对应的编码器就用不了
- configure 参数要对 — --enable-gpl 是启用 x264/x265 的前提
- ldconfig 不能忘 — 否则运行时报找不到动态库
- 多核编译提速 — make -j$(nproc) 比单核快好几倍
- 用一键脚本省事 — 脚本做了错误处理和日志记录,比手动操作更稳
ffmpeg-install.sh
#!/bin/bash # # FFmpeg 一键编译安装脚本 # 支持 CentOS 7/8/9、Ubuntu 18.04/20.04/22.04/24.04、Debian 10/11/12 # 使用方法: sudo bash ffmpeg-install.sh # set -e FFMPEG_VERSION="7.1.1" INSTALL_PREFIX="/usr/local/ffmpeg" LOG_FILE="/tmp/ffmpeg-install.log" THREADS=$(nproc) RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${GREEN}[INFO]${NC} $1"; } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } log_error() { echo -e "${RED}[ERROR]${NC} $1"; } log_step() { echo -e "\n${BLUE}=====> $1${NC}\n"; } check_root() { if [ "$EUID" -ne 0 ]; then log_error "请使用 root 用户或 sudo 执行此脚本" exit 1 fi } detect_os() { if [ -f /etc/os-release ]; then . /etc/os-release OS=$ID VERSION=$VERSION_ID elif [ -f /etc/redhat-release ]; then OS="centos" VERSION=$(rpm -q --queryformat '%{VERSION}' centos-release 2>/dev/null || echo "7") else log_error "无法检测操作系统版本" exit 1 fi log_info "检测到操作系统: $OS $VERSION" } install_dependencies_centos() { log_step "安装 CentOS/RHEL 系统依赖" yum install -y epel-release >> $LOG_FILE 2>&1 yum install -y \ gcc gcc-c++ make cmake autoconf automake libtool \ git wget tar bzip2 nasm yasm \ libtool pkg-config \ zlib-devel bzip2-devel openssl-devel \ libx264-devel libx265-devel \ lame-devel libass-devel \ freetype-devel fribidi-devel \ libvorbis-devel libtheora-devel \ opus-devel >> $LOG_FILE 2>&1 log_info "CentOS/RHEL 依赖安装完成" } install_dependencies_ubuntu() { log_step "安装 Ubuntu/Debian 系统依赖" apt-get update >> $LOG_FILE 2>&1 apt-get install -y \ build-essential cmake autoconf automake libtool \ git wget tar bzip2 nasm yasm \ pkg-config \ zlib1g-dev libbz2-dev libssl-dev \ libx264-dev libx265-dev libnuma-dev \ libmp3lame-dev libass-dev \ libfreetype6-dev libfribidi-dev \ libvorbis-dev libtheora-dev \ libopus-dev >> $LOG_FILE 2>&1 log_info "Ubuntu/Debian 依赖安装完成" } install_dependencies() { detect_os case $OS in centos|rhel|rocky|almalinux) install_dependencies_centos ;; ubuntu|debian|linuxmint) install_dependencies_ubuntu ;; *) log_error "不支持的操作系统: $OS" exit 1 ;; esac } download_ffmpeg() { log_step "下载 FFmpeg $FFMPEG_VERSION 源码" cd /tmp if [ -d "ffmpeg-$FFMPEG_VERSION" ]; then log_warn "检测到已存在的源码目录,跳过下载" return fi local url="" log_info "下载地址: $url" wget -c "$url" -O "ffmpeg-${FFMPEG_VERSION}.tar.bz2" >> $LOG_FILE 2>&1 tar -xjf "ffmpeg-${FFMPEG_VERSION}.tar.bz2" >> $LOG_FILE 2>&1 log_info "FFmpeg 源码下载并解压完成" } configure_ffmpeg() { log_step "配置 FFmpeg 编译选项" cd "/tmp/ffmpeg-$FFMPEG_VERSION" ./configure \ --prefix="$INSTALL_PREFIX" \ --enable-gpl \ --enable-nonfree \ --enable-shared \ --enable-pthreads \ --enable-libx264 \ --enable-libx265 \ --enable-libmp3lame \ --enable-libass \ --enable-libfreetype \ --enable-libvorbis \ --enable-libtheora \ --enable-libopus \ --enable-small \ --enable-version3 \ --extra-cflags="-I${INSTALL_PREFIX}/include" \ --extra-ldflags="-L${INSTALL_PREFIX}/lib" >> $LOG_FILE 2>&1 log_info "配置完成" } build_ffmpeg() { log_step "编译 FFmpeg (使用 $THREADS 线程)" cd "/tmp/ffmpeg-$FFMPEG_VERSION" make -j"$THREADS" >> $LOG_FILE 2>&1 log_info "编译完成" } install_ffmpeg() { log_step "安装 FFmpeg" cd "/tmp/ffmpeg-$FFMPEG_VERSION" make install >> $LOG_FILE 2>&1 log_info "安装完成" } configure_environment() { log_step "配置环境变量" echo "$INSTALL_PREFIX/lib" > /etc/ld.so.conf.d/ffmpeg.conf ldconfig >> $LOG_FILE 2>&1 if ! grep -q "FFMPEG_HOME" /etc/profile.d/ffmpeg.sh 2>/dev/null; then cat > /etc/profile.d/ffmpeg.sh << 'ENVEOF' export FFMPEG_HOME=/usr/local/ffmpeg export PATH=$FFMPEG_HOME/bin:$PATH ENVEOF chmod +x /etc/profile.d/ffmpeg.sh fi source /etc/profile.d/ffmpeg.sh 2>/dev/null || true log_info "环境变量配置完成" } verify_installation() { log_step "验证安装结果" if "$INSTALL_PREFIX/bin/ffmpeg" -version >> $LOG_FILE 2>&1; then echo "" "$INSTALL_PREFIX/bin/ffmpeg" -version | head -3 echo "" log_info "FFmpeg 安装成功!" else log_error "FFmpeg 安装验证失败,请检查 $LOG_FILE" exit 1 fi } cleanup() { log_step "清理临时文件" rm -rf "/tmp/ffmpeg-${FFMPEG_VERSION}" "/tmp/ffmpeg-${FFMPEG_VERSION}.tar.bz2" log_info "清理完成" } print_summary() { echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN} FFmpeg 安装完成!${NC}" echo -e "${GREEN}========================================${NC}" echo -e " 安装路径: ${YELLOW}$INSTALL_PREFIX${NC}" echo -e " FFmpeg版本: ${YELLOW}$FFMPEG_VERSION${NC}" echo -e " 编码器支持: ${YELLOW}x264 / x265 / mp3lame / opus / vorbis${NC}" echo "" echo -e " ${BLUE}使用方法:${NC}" echo -e " source /etc/profile.d/ffmpeg.sh # 加载环境变量" echo -e " ffmpeg -version # 查看版本" echo -e " ffmpeg -i input.mp4 -c:v libx264 output.mp4 # 转码示例" echo "" echo -e " ${BLUE}日志文件: ${YELLOW}$LOG_FILE${NC}" echo "" } main() { echo -e "${BLUE}" echo " ╔═══════════════════════════════════════╗" echo " ║ FFmpeg 一键编译安装脚本 ║" echo " ║ 版本: $FFMPEG_VERSION ║" echo " ╚═══════════════════════════════════════╝" echo -e "${NC}" check_root install_dependencies download_ffmpeg configure_ffmpeg build_ffmpeg install_ffmpeg configure_environment verify_installation cleanup print_summary } main "$@"
全部评论