【问题标题】:ffmpeg / avconv error while using a discord bot slash cmd使用 discord bot slash cmd 时出现 ffmpeg / avconv 错误
【发布时间】:2022-11-28 14:07:19
【问题描述】:

代码

const {
    SlashCommandBuilder,
    PermissionFlagsBits,
    PermissionsBitField,
    EmbedBuilder,
  } = require("discord.js");

    const { generateDependencyReport, AudioPlayerStatus, joinVoiceChannel, createAudioPlayer, createAudioResource  } = require('@discordjs/voice'); 
  const googleTTS = require("google-tts-api");

module.exports = {
  data: new SlashCommandBuilder()
    .setName(`tts`)
    .setDescription(`Fai ripetere al bot un messaggio in un canale vocale`)
    .addStringOption((option) =>
        option
          .setName("messaggio")
          .setDescription("Scrivi il messaggio da far ripetere dal bot in vocale")
          .setRequired(true)
      )
    .addBooleanOption((option) =>
    option
      .setName("rallentatore")
      .setDescription("Vuoi che il messaggio sia mandato a rallentatore?")
      .setRequired(true)
  ),  
  async execute(interaction, client) {

    const testo = interaction.options.getString("messaggio");
    const slow = interaction.options.getBoolean("rallentatore");



     const url = googleTTS.getAudioUrl(testo, {
        lang: "it",
        slow: slow,
        host: 'https://translate.google.com',
      });

      


      const { generateDependencyReport, AudioPlayerStatus, joinVoiceChannel, createAudioPlayer, createAudioResource  } = require('@discordjs/voice');



      const voiceChannelId = interaction.member.voice.channel.id
        const voiceChannel = interaction.member.voice.channel
        const guildId = interaction.guild.id

        
        const player = createAudioPlayer();

    

        const resource = createAudioResource(url);
        player.play(resource);

        
        const connection = joinVoiceChannel({
            channelId: voiceChannelId,
            guildId: guildId,
            adapterCreator: voiceChannel.guild.voiceAdapterCreator,
        });    



        const subscription = connection.subscribe(player);


        if (subscription) {
            setTimeout(() => subscription.unsubscribe(), 30_000);
        }

 
    
  },
};

错误

Error: FFmpeg/avconv not found!
    at Function.getInfo (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\node_modules\prism-media\src\core\FFmpeg.js:143:11)
    at Function.create (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\node_modules\prism-media\src\core\FFmpeg.js:156:38)
    at new FFmpeg (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\node_modules\prism-media\src\core\FFmpeg.js:45:27)
    at Object.transformer (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\node_modules\@discordjs\voice\dist\index.js:1699:27)
    at C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\node_modules\@discordjs\voice\dist\index.js:1855:58
    at Array.map (<anonymous>)
    at createAudioResource (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\node_modules\@discordjs\voice\dist\index.js:1855:39)
    at Object.execute (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\src\commands\tools\tts.js:56:26)
    at Object.execute (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\src\events\client\interactionCreate.js:13:23)
    at Client.<anonymous> (C:\Users\Casa\OneDrive\Desktop\Discord\eKicks\eKicks Bot v14\src\functions\handlers\handleEvents.js:20:23)

我正在发出命令以在语音频道中播放消息。从终端返回此错误后,我通过创建环境变量并安装了 python 安装了 ffmpeg。我不明白为什么它一直出现这个错误。下面我附上了 npm 列表的图片

也许我还必须安装 avconv 但我不知道该怎么做,请附上链接好吗?我还需要将 avconv 添加到环境变量吗?

【问题讨论】:

    标签: javascript node.js ffmpeg discord.js google-text-to-speech


    【解决方案1】:

    我遇到了这个问题,我 99% 确定我通过执行 sudo apt-get install ffmpeg 修复了它,因为出于某种原因,从 npm 安装它不起作用,不知道为什么,但希望这对你有用,如果它不起作用,抱歉

    【讨论】:

      猜你喜欢
      • 2017-11-05
      • 2020-09-03
      • 2018-07-16
      • 2019-11-22
      • 2022-01-20
      • 1970-01-01
      • 2021-06-28
      • 2020-09-27
      • 2022-11-27
      相关资源
      最近更新 更多