繁体   English   中英

节点直播 stream mp3

[英]Live stream mp3 in Node

所以我试图捕获音频,然后在 NodeJS 中返回音频直播 stream 。 我希望响应类似于此示例 请注意浏览器如何在媒体播放器中打开文件。

我当前的解决方案看起来像这样,但它会呈现为“没有找到支持格式和 mime 类型的视频”

const express = require("express");
const app = express();
const AudioRecorder = require("node-audiorecorder");


app.get("/stream.wav", function (req, res) {
  res.set({
    "Content-Type": "audio/wav",
  });
  audioRecorder.start().stream().pipe(res);
});

如果我首先将 stream 写入文件(下面的代码)并使用 VLC 打开所述文件,则实时 stream 可以工作。 它会不断地写入文件,VLC 不会有任何问题。

const fileStream = fs.createWriteStream(fileName, { encoding: "binary" });

// Start and write to the file.
//audioRecorder.start().stream().pipe(fileStream);

我整天都在挠头,但我被困住了。 任何帮助将不胜感激!

我不确定 output 音频格式。 是MP3还是WAV? 你的答案暗示了两者。 在第一种情况下,MIME 类型应该是audio/mpeg

还应该用以下任何帮助替换res.set吗?

res.setHeader('Content-Type', contentType)

res.writeHead(statusCode,{'Content-Type': contentType})

contentType是“audio/wav”, statusCode应该是 200。

我通过像这样添加 fluent-ffmpeg 解决了这个错误:

var stream = ffmpeg().input(audioRecorder.start().stream()).toFormat("mp3");
app.get("/stream.mp3", function (req, res) {
  res.type("mp3");
  stream.pipe(res);
});

有一个大约 10 秒的延迟,我必须处理。

暂无
暂无

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

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