在NodeJS中录制互联网音频流

时间:2015-07-24 03:49:07

标签: node.js

我有一个不断广播的互联网音频流(可通过http url访问),我想以某种方式用NodeJS记录,并写入由一分钟段组成的文件。

我在这个主题上找到的每个模块或文章都是关于 NodeJS流式传输到浏览器。我只想打开流并将其记录(时间块按时间块)到文件。

有什么想法吗?

1 个答案:

答案 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());
});