Python音频格式转换失败求助:使用pydub遇WindowsError错误
解决pydub AudioSegment转MP3时的WindowsError: [Error 2]问题
嘿,我之前做音频转换的时候也踩过这个坑!这个报错本质上是程序找不到需要的文件——要么是你要处理的源文件,要么是pydub依赖的ffmpeg工具。给你几个排查和解决的方向:
先确认源文件路径绝对正确
很多时候是相对路径搞的鬼,比如你以为程序和源文件在同一目录,但实际工作目录不一样。建议直接用绝对路径,而且Windows路径里的反斜杠要转义,或者用原始字符串避免麻烦:from pydub import AudioSegment # 用原始字符串避免转义问题 original_name = r"C:\Users\YourName\Desktop\input_video.mp4" new_name = r"C:\Users\YourName\Desktop\output_audio.mp3" original_audio = AudioSegment.from_file(original_name) original_audio.export(new_name, format="mp3")另外检查文件名有没有空格、中文或者特殊字符,有的话尽量改成纯英文+数字的命名,避免路径解析错误。
必须安装并配置ffmpeg
pydub本身不做编码解码,全靠ffmpeg帮忙。如果你没装ffmpeg,或者没把它加到系统环境变量里,pydub就会找不到工具,报这个错。- 下载对应Windows版本的ffmpeg压缩包,解压到某个固定路径(比如
C:\ffmpeg) - 把
C:\ffmpeg\bin这个路径添加到系统的PATH环境变量里 - 重启你的Python编辑器/终端,让环境变量生效
要是不想改环境变量,也可以在代码里直接指定ffmpeg的位置:
from pydub import AudioSegment # 手动指定ffmpeg的执行文件路径 AudioSegment.converter = r"C:\ffmpeg\bin\ffmpeg.exe" original_name = r"C:\path\to\your\source_file" new_name = r"C:\path\to\output.mp3" original_audio = AudioSegment.from_file(original_name) original_audio.export(new_name, format="mp3")- 下载对应Windows版本的ffmpeg压缩包,解压到某个固定路径(比如
检查源文件是否存在/被占用
可以先加一行代码验证文件是否真的在指定路径:import os if not os.path.exists(original_name): print(f"源文件不存在:{original_name}")另外如果源文件被其他程序(比如视频播放器)打开着,也会导致pydub无法读取,记得关闭相关程序再试。
内容的提问来源于stack exchange,提问作者itay12v
相关产品推荐
相关产品推荐

