You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下ffmpeg不支持https协议,discord.py音乐bot播放报错如何解决

Windows平台discord.py音乐机器人FFmpeg HTTPS输入报错解决方案

问题根因确认

你之前的判断正确,报错核心是当前使用的FFmpeg版本未编译HTTPS协议支持。Windows平台的FFmpeg安装逻辑和Linux完全不同,无需寻找./configure配置文件进行编译操作,直接替换适配版本即可。

第一步:安装带HTTPS支持的FFmpeg版本

  • 搜索FFmpeg官方Windows构建包,选择full完整版(不要下载basic精简版),完整版默认内置openssl依赖,原生支持HTTPS输入
  • 下载完成后解压到磁盘任意目录,例如C:\FFmpeg,解压后确认C:\FFmpeg\bin目录下存在ffmpeg.exe、ffplay.exe、ffprobe.exe三个可执行文件
  • 将FFmpeg的bin目录路径添加到系统环境变量Path:右键「此电脑」→属性→高级系统设置→环境变量→在系统变量列表中找到Path→点击编辑→新建→粘贴C:\FFmpeg\bin→依次点击确定保存所有配置窗口
  • 验证配置生效:按Win+R输入cmd打开命令提示符,执行ffmpeg -protocols,输出的支持协议列表中能找到https即代表版本符合要求

第二步:优化Python调用代码

新增FFmpeg路径显式声明和流播放适配参数,避免环境变量识别失效、YouTube音频流断连问题,修改后代码如下:

channel = message.author.voice.channel
if message.content.startswith("IT play"):
    voicechannel = await channel.connect()
    songname = message.content.split(" ")[2]
    vurl = "https://www.youtube.com/watch?v=kn4nL99Vb5A"
    song = pafy.new(vurl)
    audio = song.getbestaudio()
    print(audio.url)
    # 显式指定FFmpeg路径,添加流播放适配参数
    FFMPEG_PATH = r"C:\FFmpeg\bin\ffmpeg.exe"
    ffmpeg_options = {
        'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
        'options': '-vn'
    }
    source = discord.FFmpegPCMAudio(audio.url, executable=FFMPEG_PATH, **ffmpeg_options)
    voicechannel.play(source)

第三步:依赖校验

  • pafy需要配合yt-dlp才能正常解析YouTube音频链接,执行pip install yt-dlp安装对应依赖即可
  • 不要长期复用硬编码的测试音频链接,YouTube生成的音频直链存在时效性,每次播放前需重新调用pafy解析获取最新地址

内容的提问来源于stack exchange,提问作者LordPhoenix44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 13:24:11