【python】 macos 安装ffmpeg 命令行工具

背景

python代码中有段处理音频格式的代码,需要系统环境的ffmpeg工具,代码如下:

python 复制代码
# 方式 1: 使用 ffmpeg 转换
    try:
        ffmpeg_cmd = [
            'ffmpeg', '-i', mp3_file_path,
            '-ar', '16000', '-ac', '1', '-f', 'wav', '-y',
            wav_file_path
        ]
        
        result = subprocess.run(ffmpeg_cmd, capture_output=True, text=True)
        time.sleep(0.5)
        
        if result.returncode == 0 and os.path.exists(wav_file_path):
            return wav_file_path
        else:
            raise Exception(f"ffmpeg 转换失败:{result.stderr}")
    except FileNotFoundError:
        # 方式 2: 使用 pydub 库转换
        from pydub import AudioSegment
        audio = AudioSegment.from_mp3(mp3_file_path)
        audio = audio.set_frame_rate(16000).set_channels(1)
        audio.export(wav_file_path, format="wav")
        return wav_file_path

这段代码调用了 ffmpeg 命令行工具来处理音频文件。在 macOS 系统上,你需要安装 ffmpeg 才能执行这段代码。

安装方法

在 macOS 上安装 ffmpeg 最简单的方法是使用 Homebrew(macOS 的包管理器):

1. 如果你还没有安装 Homebrew

先安装 Homebrew(如果已安装可跳过):

bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 使用 Homebrew 安装 ffmpeg

bash 复制代码
brew install ffmpeg

3. 验证安装

安装完成后,可以通过以下命令验证:

bash 复制代码
ffmpeg -version

代码说明

这段代码的作用是:

  • 使用 ffmpeg 将 MP3 格式的音频文件转换为 WAV 格式
  • 设置采样率为 16000Hz (-ar 16000)
  • 设置为单声道 (-ac 1)
  • 指定输出格式为 WAV (-f wav)
  • -y 参数表示如果输出文件已存在则覆盖

注意事项

安装完成后,确保 ffmpeg 在系统的 PATH 环境变量中(Homebrew 安装的软件会自动配置好),这样代码中的 subprocess.run(['ffmpeg', ...]) 才能正确找到并执行它。

如果你的 macOS 系统没有 Homebrew,强烈建议先安装,它是管理 macOS 开发工具和环境依赖的必备工具。

相关推荐
2601_962885726 分钟前
如何用 Python 计算 BBI 多空指标?
开发语言·python
必须得开心呀8 分钟前
为什么 python-docx 打不开加密的 .docx,Word COM 却能打开
python·word
VidDown11 分钟前
上传 2GB 文件别让 Django 接:分片上传、对象存储直传与秒传
python·django·音视频·状态模式·实时音视频·视频编解码·视频
打工仔折腾 AI32 分钟前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
yi01133 分钟前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
kimnoic44 分钟前
Python常用命令提示符使用方法详解
开发语言·python
天天被压力1 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #25】北交所财务技术指标难搞?12个接口,报表+MACD全拿
java·人工智能·python
Είναι η κοπέλα1 小时前
模型量化完全指南:GGUF、GPTQ、AWQ 怎么选
人工智能·pytorch·python
yi0111 小时前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
weixin199701080161 小时前
《1688消息服务落地方案:alibaba.message.* 与 Webhook 回调的可靠性与重试策略》(附Python源码)
开发语言·python