Discord机器人TTS斜杠命令报错:FFmpeg/avconv未找到
解决Discord机器人TTS命令的「FFmpeg/avconv not found!」错误
核心结论
不需要单独安装avconv——FFmpeg和avconv属于同类音视频处理工具,绝大多数Discord语音开发库(如discord.js)会优先查找FFmpeg,仅在找不到时才尝试avconv。你已安装FFmpeg,问题大概率出在环境变量未生效或库的路径配置上。
排查与修复步骤
- 先验证FFmpeg环境变量有效性:打开新终端(环境变量修改后需重启终端才能生效),输入
ffmpeg -version,若能输出版本信息,说明环境变量配置正确;若不能,重新检查FFmpeg安装路径是否准确添加到系统PATH变量中。 - 若FFmpeg验证正常,可在代码中手动指定FFmpeg路径强制库识别:
以discord.js为例,创建客户端时添加配置:const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates], // 手动指定FFmpeg完整路径 ffmpegPath: 'C:/Program Files/ffmpeg/bin/ffmpeg.exe' // Windows示例;Linux/macOS直接写`ffmpeg`即可(PATH正常时) }); - 检查npm依赖:确认已安装语音处理相关包(如
@discordjs/voice、discord.js),部分包会附带预编译FFmpeg版本,但手动指定系统已安装的FFmpeg路径更稳定。
关于avconv的补充
avconv是FFmpeg的历史分支,目前已基本合并回FFmpeg生态,无需单独安装。若后续确需使用,安装逻辑与FFmpeg一致:安装后需将其路径添加到系统PATH变量,但优先解决FFmpeg的识别问题是更高效的方案。
内容的提问来源于stack exchange,提问作者Ema R
相关产品推荐
相关产品推荐

