Coder Social home page Coder Social logo

node-addon-mpg123's Introduction

node-addon-mpg123

node.js addon & native bindings to libmpg123

npm Build Status

node-addon-mpg123 is based on TooTallNate/node-lame and removed lame related code to keep it simple. And extended the Decoder to support decoding format options.

For all your async streaming MP3 decoding needs, there's node-addon-mpg123! This module hooks into libmpg123, the library that the mpg123 command uses, to provide Decoder streams to node.js.

Installation

node-addon-mpg123 comes bundled with its own copy of libmpg123, so there's no need to have them installed on your system.

Simply compile and install nampg123 using npm:

$ npm i nampg123

Example

Here's an example of using node-addon-mpg123 to decode an MP3 file coming from process.stdin to some raw PCM data that gets piped to process.stdout:

const mpg123 = require('nampg123');

// create the Decoder instance
const decoder = new mpg123.Decoder();

// MP3 data from stdin gets piped into the decoder
process.stdin.pipe(decoder);

// the raw PCM data gets piped to stdout
decoder.pipe(process.stdout);

See test/decoder.js for some more example code.

API

Decoder class

The Decoder class is a Stream subclass that accepts MP3 data written to it, and outputs raw PCM data. It also emits a "format" event when the format of the MP3 file is determined (usually right at the beginning). You can specify the output PCM data format when creating the decoder instance.

const mpg123 = require('nampg123');
const decoder = new mpg123.Decoder({
  sampleRate: 44100,        // [8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000]
  channels: mpg123.STEREO,  // [mpg123.MONO, mpg123.STEREO, mpg123.MONO | mpg123.STEREO]
  signed: false,            // [true, false]
  float: true,              // [true, false]
  bitDepth: 32,             // [8, 16, 24, 32]
});

โš ๏ธ The channels option is different from the TooTallNate/node-lame encoder.

See more about mpg123 encoding formats: https://github.com/mdluo/node-addon-mpg123/blob/master/deps/mpg123/src/libmpg123/mpg123.h.in#L348-L395

node-addon-mpg123's People

Contributors

tootallnate avatar mdluo avatar arunoda avatar linusu avatar gierschv avatar beneidel avatar ndfred avatar paixaop avatar timothygu avatar xp1 avatar yhbyun avatar joeblynch avatar shine-on avatar

Watchers

James Cloos avatar Jonas Karlsson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.