当前位置: 首页 > news >正文

解决 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 AudioSegmentAudioSegment.converter = "/usr/local/bin/ffmpeg"
AudioSegment.ffprobe   = "/usr/local/bin/ffprobe"

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


总结

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

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

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

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

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

http://www.dtcms.com/a/350342.html

相关文章:

  • 信号处理的核心机制:从保存、处理到可重入性与volatile
  • 做市商在期权市场中的盈利模式是什么?
  • 挖币与区块链技术有怎样的联系?
  • 【大白话解析】 OpenZeppelin 的 ECDSA 库:以太坊签名验证安全工具箱(附源代码)
  • ElasticSearch数据库(ES数据库)是什么???
  • docker安装ros
  • 网络编程1-基本概念、函数接口
  • 页面中嵌入Coze的Chat SDK
  • Hazelcast
  • Docker:数据卷(挂载本地目录)
  • FFmpeg 8.0 “Huffman“ 全面评测:Vulkan 加速、AI 集成与编解码革新
  • 8月25日
  • UPROPERTY的再次学习
  • 高通SNPE测试:6、在开发板上运行Inception v3 Model(oe-linux)
  • vite + react + tailwind(2025-08-25)
  • C++贪吃蛇---详细步骤
  • 2.4 Flink运行时架构:Task、SubTask、ExecutionGraph的关系
  • OPcache 高级技术文档:原理、监控与优化实践
  • Unity使用Sprite切割大图
  • JavaScript 性能优化实战:从理论到落地的技术文章大纲
  • 基于长短期记忆网络的多变量时间序列预测 LSTM
  • Redis 哨兵 Sentinel
  • 【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。
  • 实时监测蒸汽疏水阀的工作状态的物联网实时监控平台技术解析
  • VLLM的加速原理
  • 基于MATLAB实现支持向量机(SVM)进行预测备
  • 大模型的多机多卡训练
  • 神经网络|(十五)概率论基础知识-协方差标准化和皮尔逊相关系数
  • 亚马逊AWD美西新仓上线:旺季备货的效率革命与策略升级
  • 真实应急响应案例记录