vorbis

0.2.2 • Public • Published

node-vorbis

Node.js native binding to libvorbis

Build Status

This module provides Vorbis Encoder and Decoder classes compatible with node-ogg streams.

Installation

node-vorbis comes bundled with its own copy of libvorbis, so there's no need to have the library pre-installed on your system.

Simply compile and install node-vorbis using npm:

$ npm install vorbis

Example

Decoder example:

var fs = require('fs');
var ogg = require('ogg');
var vorbis = require('vorbis');
var file = __dirname + '/Hydrate-Kenny_Beltrey.ogg';
 
var od = new ogg.Decoder();
od.on('stream', function (stream) {
  var vd = new vorbis.Decoder();
 
  // the "format" event contains the raw PCM format
  vd.on('format', function (format) {
    // send the raw PCM data to stdout
    vd.pipe(process.stdout);
  });
 
  // an "error" event will get emitted if the stream is not a Vorbis stream
  // (i.e. it could be a Theora video stream instead)
  vd.on('error', function (err) {
    // maybe try another decoder...
  });
 
  stream.pipe(vd);
});
 
fs.createReadStream(file).pipe(od);

Encoder example:

var ogg = require('ogg');
var vorbis = require('vorbis');
 
var oe = new ogg.Encoder();
var ve = new vorbis.Encoder();
 
// not yet implemented...
ve.addComment('ARTIST', 'Bob Marley');
 
// `process.stdin` *MUST* be PCM float 32-bit signed little-endian samples.
// channels and sample rate are configurable but default to 2 and 44,100hz.
process.stdin.pipe(ve)
 
// send the encoded Vorbis pages to the Ogg encoder
ve.pipe(oe.stream());
 
// write the produced Ogg file with Vorbis audio to `process.stdout`
oe.pipe(process.stdout);

See the examples directory for some more example code.

API

Decoder class

Encoder class

Package Sidebar

Install

npm i vorbis

Weekly Downloads

114

Version

0.2.2

License

MIT

Unpacked Size

7.54 MB

Total Files

445

Last publish

Collaborators

  • linusu
  • tootallnate