Discord bot python:discord.errors.ClientException:找不到ffmpeg

Posted

技术标签:

【中文标题】Discord bot python:discord.errors.ClientException:找不到ffmpeg【英文标题】:Discord bot python: discord.errors.ClientException: ffmpeg was not found 【发布时间】:2019-08-12 13:42:37 【问题描述】:

我正在尝试制作一个在语音频道中播放音乐的不和谐机器人。它连接到语音通道,但不播放任何内容。它还会在控制台中报错。

我在 Windows 上,我正在使用 discord.py 重写。

我的代码:

import discord, random, datetime, asyncio, nacl, ffmpeg

TOKEN = 'What token'

client = discord.Client()

@client.event
async def on_message(message):
if message.content.lower() == '$play':
    if message.content.lower() == '$play':
        channel = client.get_channel(547155964328149007)
        vc = await channel.connect()
        vc.play(discord.FFmpegPCMAudio('mp3.mp3'), after=lambda e: print('done', e))
        vc.is_playing()
        vc.pause()
        vc.resume()
        vc.stop()

@client.event
async def on_ready():
    print('Logged in as 0.user'.format(client))

client.run(TOKEN)

错误:

Traceback (most recent call last):
  File "D:\Python35\lib\site-packages\discord\client.py", line 218, in _run_event
    await coro(*args, **kwargs)
  File "discord_bot.py", line 90, in on_message
    vc.play(discord.FFmpegPCMAudio('mp3.mp3'), after=lambda e: print('done', e))
  File "D:\Python35\lib\site-packages\discord\player.py", line 165, in __init__
    raise ClientException(executable + ' was not found.') from None
discord.errors.ClientException: ffmpeg was not found.

人们似乎对ffmpeg/avconv was not found in your PATH environment variable 有类似的问题,但他们的解决方法是从网站下载 ffmpeg 并将其放入他们的 PATH 中,但这对我不起作用。

此外,我只能在 javascript 中找到解决问题的方法,而我正在使用 Python 3 编写机器人代码。

以下是我研究中的一些链接:

You need to add FFmpeg to your path

A discord.js (JavaScript) fix for the same error

A fix for discord.py, NOT for discord.py REWRITE

【问题讨论】:

【参考方案1】:

您可以使用参数executable直接指定FFmpeg可执行文件:

vc = await channel.connect()
vc.play(discord.FFmpegPCMAudio(executable="C:/path/ffmpeg.exe", source="mp3.mp3"))

【讨论】:

如果我想在服务器上在线托管我的机器人怎么办?【参考方案2】:

你可以试试这个模块:https://github.com/kkroening/ffmpeg-python

pip install ffmpeg-python

【讨论】:

以上是关于Discord bot python:discord.errors.ClientException:找不到ffmpeg的主要内容,如果未能解决你的问题,请参考以下文章

“错误:未找到 FFMPEG”但应安装 FFMPEG - Discord Bot

Python Discord Bot 未加入语音频道

Python 3.6 Discord bot Bot 事件冲突

Discord Python Bot- 修复清除命令

Discord bot python:discord.errors.ClientException:找不到ffmpeg

Python Discord Bot 取消命令