Discord漫游器:修复“未找到FFMPEG”

时间:2019-02-12 20:19:52

标签: javascript ffmpeg discord discord.js

我想让Discord机器人加入语音聊天,但是每次我登录log(cmd)时都会出错,说FFMPEG not found,请帮帮我。

错误图片:

这是代码:

client.on('message', message => {
  // Voice only works in guilds, if the message does not come from a guild,
  // we ignore it
  if (!message.guild) return;

  if (message.content === '/join') {
    // Only try to join the sender's voice channel if they are in one themselves
    if (message.member.voiceChannel) {
      message.member.voiceChannel.join()
        .then(connection => { // Connection is an instance of VoiceConnection
          message.reply('I have successfully connected to the channel!');
        })
        .catch(console.log);
    } else {
      message.reply('You need to join a voice channel first!');
    }
  }
});

这是我的package.json文件:

{
  "name": "xxxtentacion",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "dependencies": {
    "discord.js": "^11.4.2",
    "dotenv": "^6.2.0",
    "ffmpeg": "0.0.4",
    "opusscript": "0.0.6"
  },
  "devDependencies": {
    "nodemon": "^1.18.9"
  }
}

3 个答案:

答案 0 :(得分:3)

语音简介 discord.js中的语音可用于许多用途,例如音乐bot,录制或中继音频。

在discord.js中,您可以通过连接到VoiceChannel来获取语音连接来使用语音,然后在其中开始流式传输和接收音频。

要开始使用,请确保您具有:

FFmpeg- npm install ffmpeg-binaries
一种Opus编码器,请从下面选择一种:

  • npm install node-opus (性能更好)
  • npm install opusscript (良好的网络连接)

首选opus引擎是node-opus,因为它的性能明显优于opusscript。当两者均可用时,discord.js将自动选择节点操作。仅在节点操作难以实现的开发环境中才建议使用opusscript。对于生产型机器人,应该考虑使用节点操作,尤其是如果它们要在多台服务器上运行时。

答案 1 :(得分:2)

FFmpeg是跨平台的音频/视频转码器。将任何类型的音频/视频流转码为兼容的VoIP音频格式(opus)时都需要这样做。

安装

FFmpeg 是跨平台的,但安装过程取决于平台。 因此,这是在(Linux,Windows)中安装的流行方法。

Linux

# go into terminal and install this
sudo apt install 'ffmpeg'

Windows

Zeranoe的网站下载静态二进制文件。

解压缩存档文件并复制bin文件夹的内容,然后将其复制到C:\Windows\System32或您选择的任何文件夹中。
但是,请确保该文件夹位于PATH中。

答案 2 :(得分:0)

我什至以为我安装了ffmpeg,我在Discord.js中播放流时遇到了问题,所以这是一个可能的解决方法,如果 ffmpeg 命令不能在CMD中单独运行,则至少在Windows中运行,然后我在第115行转到了node_modules \ prism-media \ src \ core \ FFmpeg.js,并且在每个可能使用的目录都有一个数组,例如ffmpeg,所以我从

}, 'ffmpeg', 'avconv', './ffmpeg', './avconv'];

}, 'ffmpeg', 'avconv', './ffmpeg', 'C:/ffmpeg/ffmpeg', './avconv'];

,效果很好! :>