如何在Node.js中使用ffmpeg转换audio文件?

我为我的discord.js bot创build了一个简单的带有ffmpeg的video – audio转换器:

let stream = //an mp4 stream ffmpeg(stream) .toFormat("mp3") .stream(fs.createWriteStream("./audio.mp3")) .on("end", () => { connection.playStream(fs.createReadStream("./audio.mp3")) }); 

这一切工作正常,但使用.on()播放文件 – 只有完全完成转换后 – 可能需要一段时间。

有没有一种有效的方式来使用connection.playStream 播放audio文件或stream,因为ffmpeg转换仍然在发生?

我最终看到这个问题,并使用生长文件模块来转换文件正在被转换。 总体思路如下:

 const writeStream = fs.createWriteStream("./audio.mp3"); const stream = //mp4 stream ffmpeg(stream) .toFormat("mp3") .pipe(writeStream); const file = GrowingFile.open("./audio.mp3"); connection.playStream(file); 

唯一的缺点是,我仍然被迫下载stream到一个MP3文件,而我宁愿跳过这一步,只需使用connection.playStream播放ffmpeg的pipe

如果任何人有一个想法如何跳过MP3下载,只需stream/ pipe到connection.playStream ,将不胜感激!