解决 Ubuntu 环境下 ffmpeg 安装依赖问题(FileNotFoundError: ffprobe 错误处理)

目录

1. 问题背景

2. 原因分析

3. 常规解决方法:apt 安装 ffmpeg

4. 解决 apt 依赖问题

(1)修复损坏的依赖

(2)启用 universe 仓库

5. 替代方案:安装 ffmpeg 静态编译版

6. 验证安装是否成功

7. 在 Python 中指定 ffmpeg 路径

总结


1. 问题背景

最近在用 pydub 做音频切分时,执行下面的代码:

from pydub import AudioSegment
audio = AudioSegment.from_file("test.mp4", format="mp4")

报错:

FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe'

2. 原因分析

pydub 在解析 mp3/mp4/wav 等音频文件时,底层依赖 ffmpegffprobe
如果系统中没有安装这两个工具,就会报 FileNotFoundError

3. 常规解决方法:apt 安装 ffmpeg

在 Ubuntu / Debian 系统里,可以直接用 apt 安装:

sudo apt update
sudo apt install ffmpeg -y

理论上应该能自动安装依赖。但有时候会遇到类似错误:

ffmpeg : 依赖: libavcodec58 (= 7:4.2.7-0ubuntu0.1) ...
E: 错误,pkgProblemResolver::Resolve 发生故障

说明系统源里缺少依赖。

4. 解决 apt 依赖问题

如果遇到依赖缺失,可以尝试:

(1)修复损坏的依赖

sudo apt --fix-broken install -y
sudo apt install ffmpeg -y

(2)启用 universe 仓库

Ubuntu 某些版本默认没启用 universe 仓库,手动添加:

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg -y

这样大部分情况下能解决。

5. 替代方案:安装 ffmpeg 静态编译版

如果 apt 依旧失败,可以直接使用官方预编译好的 静态二进制包,无需依赖系统库。

(1)下载并解压

cd /usr/local
sudo wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
sudo tar -xvf ffmpeg-release-amd64-static.tar.xz

(2)建立软链接(全局可用)

cd ffmpeg-*-amd64-static
sudo ln -s /usr/local/ffmpeg-*-amd64-static/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg-*-amd64-static/ffprobe /usr/bin/ffprobe

6. 验证安装是否成功

安装完成后,运行:

ffmpeg -version
ffprobe -version

如果能正常显示版本信息,就说明安装成功。

7. 在 Python 中指定 ffmpeg 路径

如果你下载的 ffmpeg 没放到 PATH 里,可以在代码里手动指定:

from pydub import AudioSegment

AudioSegment.converter = "/usr/local/bin/ffmpeg"
AudioSegment.ffprobe   = "/usr/local/bin/ffprobe"

这样即使没配置环境变量,也能正常运行。


总结

  • pydub 处理音频时必须依赖 ffmpeg/ffprobe

  • 优先推荐 apt 安装,如果报依赖错误,可以用 --fix-broken 或启用 universe

  • 如果 apt 依旧失败,可以直接用 静态编译版 ffmpeg

  • 在 Python 中还可以显式指定 ffmpeg 路径

这样基本能解决 FileNotFoundError: ffprobe 的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值