繁体   English   中英

在Node.js中用ffmpeg转换音频文件时,如何播放音频文件?

[英]How can I play an audio file while converting it with ffmpeg in Node.js?

我为discord.js机器人使用ffmpeg创建了一个简单的视音频转换器:

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的想法,将不胜感激!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM