在Node中直播MP3

问题描述 投票:1回答:1

因此,我试图捕捉音频,然后在NodeJS中返回一个音频直播流。我希望响应是这样的 例子. 请注意浏览器如何在媒体播放器中打开该文件。

我目前的解决方案看起来像这样,但它将呈现为 "没有找到支持的格式和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);
});

现场直播的工作,如果我写的流到一个文件(代码如下),并打开所述文件与VLC。它会不断地写到文件和VLC不会有任何问题,跟着一起。

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

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

我一直在抓我的头一整天,但我卡。任何帮助将是非常感激

node.js express http stream mp3
1个回答
0
投票

我不确定输出的音频格式。是MP3还是WAV?你的答案表明这两种情况都有。在第一种情况下,MIME类型应该是...。有声读卡器.

还应更换 res.set 受以下任何帮助?

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

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

contentType 是 "audiowav"。statusCode 应该是200。


0
投票

我通过添加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秒左右的延迟,我必须工作。

© www.soinside.com 2019 - 2024. All rights reserved.