在Node.js事件循环中优化从URL到客户端的管道流

我在Nodejs(Express)中构建了一个下载服务。它基本上是从一个URL提取流(视频/音频),并使用FFmpeg库处理提取的流,并通过附加“内容配置”标头将来自FFmpeg的处理后的流传输到客户端。

app.get("/downcc",(req,res) => {
    let sourceUrl = "<some-video-or-audio-streamable-link>";
    res.setHeader(
      "Content-disposition","attachment; filename=download.mp3",);
    res.setHeader("Content-Type","audio/mpeg");
    ffmpeg({ source: sourceUrl })
      .setffmpegPath(ffmpegPath)
      .withAudioCodec("libmp3lame")
      .audioBitrate(audioFormats[0].audioBitrate)
      .toFormat("mp3")
      .on("error",err => console.log(err.message))
      .pipe(res,{
        end: true,});
});

它正常工作。但在生产中,它会消耗大量内存。有时服务器会抛出服务不可用(503代码)并且增加用户数也会降低速度。

有什么方法可以对其进行专业优化吗? 预先感谢。

liupan7891 回答:在Node.js事件循环中优化从URL到客户端的管道流

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3000057.html

大家都在问