Javascript 如何在Node.js中使用ffmpeg转换音频文件时播放音频文件?
我用ffmpeg为我的discord.js bot创建了一个简单的视频到音频转换器:Javascript 如何在Node.js中使用ffmpeg转换音频文件时播放音频文件?,javascript,node.js,ffmpeg,Javascript,Node.js,Ffmpeg,我用ffmpeg为我的discord.js bot创建了一个简单的视频到音频转换器: let stream = //an mp4 stream ffmpeg(stream) .toFormat("mp3") .stream(fs.createWriteStream("./audio.mp3")) .on("end", () => { connection.playStream(fs.createReadStream("./audio.mp3")) }); 这一切都
let stream = //an mp4 stream
ffmpeg(stream)
.toFormat("mp3")
.stream(fs.createWriteStream("./audio.mp3"))
.on("end", () => {
connection.playStream(fs.createReadStream("./audio.mp3"))
});
这一切都很好,但是使用.on()播放文件(只有在文件完全完成转换后)可能需要一段时间
当ffmpeg转换仍在进行时,是否有一种有效的方法使用connection.playStream播放音频文件或流?我最终看到并使用了正在转换的文件流。以下是总体思路:
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);
唯一的缺点是,我仍然被迫将流下载到mp3文件中,而我更愿意跳过这一步,只需使用connection.playStream
播放ffmpeg的pipe
如果有人知道如何跳过mp3下载,直接通过流/管道连接到connection.playStream,我们将不胜感激