我有一个不断广播的互联网音频流(可通过http url访问),我想以某种方式用NodeJS记录,并写入由一分钟段组成的文件。
我在这个主题上找到的每个模块或文章都是关于从 NodeJS流式传输到浏览器。我只想打开流并将其记录(时间块按时间块)到文件。
有什么想法吗?
答案 0 :(得分:1)
我认为https://github.com/TooTallNate/node-icy上的项目让这很容易,只需要使用res对象做你需要的,在示例中它被发送到音频系统:
var icy = require('icy');
var lame = require('lame');
var Speaker = require('speaker');
// URL to a known ICY stream
var url = 'http://firewall.pulsradio.com';
// connect to the remote stream
icy.get(url, function (res) {
// log the HTTP response headers
console.error(res.headers);
// log any "metadata" events that happen
res.on('metadata', function (metadata) {
var parsed = icy.parse(metadata);
console.error(parsed);
});
// Let's play the music (assuming MP3 data).
// lame decodes and Speaker sends to speakers!
res.pipe(new lame.Decoder())
.pipe(new Speaker());
});