我想让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"
}
}
答案 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)中安装的流行方法。
# go into terminal and install this
sudo apt install 'ffmpeg'
从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'];
,效果很好! :>