使用subprocess和ffmpeg提取视频音频返回错误码127的问题排查
解决ffmpeg提取音频时错误码127的问题
嘿,错误码127其实是系统找不到ffmpeg命令的典型信号,咱们一步步来排查和解决:
1. 先确认ffmpeg是否已安装
打开终端(或命令提示符)直接输入ffmpeg,如果输出的是类似“command not found”的提示,说明你的系统里还没装ffmpeg:
- Linux(比如Ubuntu):用
sudo apt update && sudo apt install ffmpeg安装 - Mac:如果装了Homebrew,用
brew install ffmpeg安装 - Windows:去ffmpeg官网下载压缩包,解压后把
bin文件夹路径添加到系统环境变量的PATH里,之后重启终端再试
2. 已安装但仍报错?检查ffmpeg的路径
有时候虽然装了ffmpeg,但Python的subprocess进程找不到它的执行路径。这时候可以把命令里的ffmpeg换成绝对路径:
- Linux/Mac:先在终端用
which ffmpeg找到路径(比如/usr/bin/ffmpeg),然后把命令改成:/usr/bin/ffmpeg -i afoomtx.mp4 -ab 160k -ac 2 -ar 44100 -vn audio.wav - Windows:找到ffmpeg.exe的位置(比如
C:\ffmpeg\bin\ffmpeg.exe),替换到命令里即可
3. 更简洁的方式:直接用ffmpeg-python库
你已经导入了ffmpeg库,其实完全不用通过subprocess调用命令行,直接用库的API更靠谱,还能避免路径问题:
import ffmpeg # 定义输入输出文件 input_path = "afoomtx.mp4" output_path = "audio.wav" # 配置参数并执行 ffmpeg.input(input_path).output( output_path, ab="160k", # 比特率 ac=2, # 声道数 ar="44100", # 采样率 vn=None # 禁用视频流 ).run()
额外小提醒
别忘了确认afoomtx.mp4确实在Python脚本的当前工作目录里,如果不在,记得用绝对路径指定输入文件哦。
内容的提问来源于stack exchange,提问作者NoLand'sMan
相关产品推荐
相关产品推荐

