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

Heroku部署Discord Bot遭遇FFmpeg PermissionError权限问题求助

Discord Bot部署Heroku后play命令PermissionError问题解决建议

核心问题分析

Heroku运行的是Linux环境,你代码中指定的/app/ffmpeg/ffmpeg.exe是Windows平台的可执行文件,在Linux系统下既无法正常执行,还会触发权限拒绝错误。此外,若已正确配置ffmpeg buildpack,无需手动指定可执行文件路径。

具体修复步骤

  • 移除代码中手动指定的executable参数
    将原代码行:

    voice.play(discord.FFmpegPCMAudio(executable="/app/ffmpeg/ffmpeg.exe", source=url, **FFMPEG_OPTIONS))
    

    修改为:

    voice.play(discord.FFmpegPCMAudio(source=url, **FFMPEG_OPTIONS))
    

    正确添加ffmpeg buildpack后,Heroku会自动将ffmpeg加入系统PATH,discord.py会自动识别并调用该可执行文件。

  • 确认buildpack配置正确性
    确保使用的是适配Linux环境的ffmpeg buildpack:

    • 若使用Heroku官方apt buildpack,需在项目根目录创建Aptfile文件,写入内容ffmpeg,然后添加buildpack地址:https://github.com/heroku/heroku-buildpack-apt.git
    • 也可直接使用专门的ffmpeg buildpack,确保其适配Heroku Linux环境。
  • 重新部署项目
    将修改后的代码推送到GitHub,触发Heroku重新部署,确保新代码和配置生效。

额外排查点

  • 若问题仍存在,可在Heroku控制台执行命令which ffmpeg,确认ffmpeg已正确安装且路径可被系统识别。
  • 检查FFMPEG_OPTIONS中的参数,避免使用Windows平台特有的参数配置。

内容的提问来源于stack exchange,提问作者Yaroslav M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:41:42