[英]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.