ffmpeg 缺失报错:Windows / Mac / Linux 安装 + PATH 验证
症状
处理视频时报错:
FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'
或:
RuntimeError: ffmpeg not found. Please install ffmpeg and make sure it's in your PATH.
排查:ffmpeg 装了吗
ffmpeg -version
如果这条命令输出 ffmpeg 版本信息 → 已安装。如果报 "command not found" → 没装或没在 PATH 里。
安装(分平台)
最推荐:Conda(所有平台)
conda activate codeformer
conda install -c conda-forge ffmpeg
优点:Conda 环境内装好后自动加到 PATH,不需要手动配置。Windows / Linux / Mac 通用。
Windows:手动下载
- 去 gyan.dev 的 ffmpeg Windows build 下载 essentials zip
- 解压到
D:\ffmpeg(路径不要有空格和中文) - 把
D:\ffmpeg\bin加到系统 PATH:
- 此电脑 → 属性 → 高级系统设置 → 环境变量 → 系统变量 → Path → 编辑 → 新建 → 粘贴路径
- 重开所有终端窗口(PATH 改动只在新终端生效)
Mac:Homebrew
brew install ffmpeg
Linux:apt / yum
# Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y ffmpeg
# CentOS / RHEL
sudo yum install -y ffmpeg
# 或(新版)
sudo dnf install -y ffmpeg
验证安装
重开终端后跑:
ffmpeg -version
# 应输出:ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers...
ffprobe -version
# ffprobe 是 ffmpeg 附带的,CodeFormer 也会用到
常见问题
问题:命令行能跑但 CodeFormer 还是找不到 ffmpeg
这几乎一定是PATH 问题:
- CodeFormer 在子进程里调
subprocess.run(['ffmpeg', ...]) - 子进程继承父进程的环境变量
- 如果你用 GUI 启动 Python(如 VS Code / PyCharm),GUI 应用的 PATH 可能不包含 ffmpeg 路径
验证:在同一个终端里(跑 CodeFormer 的那个)执行:
where ffmpeg # Windows
which ffmpeg # Linux / Mac
如果能找到路径 → 路径有效。找不到 → 没在 PATH 里。
问题:VS Code 里装了 ffmpeg 但 Python 跑还是找不到
VS Code 的 Python 环境可能是独立的 Conda 环境。在 VS Code 里:
- Ctrl+Shift+P → "Python: Select Interpreter"
- 确保选的是
codeformerConda 环境 - 然后在 VS Code 终端里
conda activate codeformer - 此时 ffmpeg 应该可用
问题:ffmpeg 版本太旧
CodeFormer 没硬性要求,但过旧的 ffmpeg(< 3.4)可能不支持某些编码格式。建议 ≥ 4.0。
ffmpeg -version | head -1
# 确认版本号
Colab 里装 ffmpeg
!apt-get install ffmpeg
# Colab 自带 apt,一行命令搞定
AutoDL / 矩池云
国内云 GPU 平台的环境通常预装 ffmpeg,直接 ffmpeg -version 确认一下就行。如果没装:
apt-get update && apt-get install -y ffmpeg
安装完后的视频测试
python inference_codeformer.py \
-w 1.0 --bg_upsampler realesrgan --face_upsample \
--input_path test_video.mp4
如果不再报 ffmpeg 错误,就装好了。