Skip to content
This repository has been archived by the owner. It is now read-only.
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
 
 
lib
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

This project has been archived due to lack of maintenance and support for new Node.js versions.

See @discordjs/opus for an alternative based on the more modern N-API technology that is more stable between Node.js versions. More information in @discordjs/discord.js#3678.

node-opus

NodeJS native bindings to libopus

This module implements bindings for Opus v1.1 for Node.js.

var opus = require('node-opus');

// Create the encoder.
// Specify 48kHz sampling rate and 10ms frame size.
// NOTE: The decoder must use the same values when decoding the packets.
var rate = 48000;
var encoder = new opus.OpusEncoder( rate );

// Encode and decode.
var frame_size = rate/100;
var encoded = encoder.encode( buffer, frame_size );
var decoded = encoder.decode( encoded, frame_size );

// or create streams
var channels = 2;
var opusEncodeStream = new opus.Encoder(rate, channels, frame_size);
var opusDecodeStream = new opus.Decoder(rate, channels, frame_size);
// see examples folder for a more complete example

Platform support

Supported platforms:

  • Linux x64 & ia32
  • Linux ARM (Raspberry Pi 1 & 2)
  • Linux ARM64 (Raspberry Pi 3)
  • Mac OS X x64
  • Windows x64

Add new supported platforms by running ./autogen.sh and ./configure in deps/opus and copying the resulting config.h to deps/config/opus/[os]/[arch].

Use the following flags with configure:

./configure --enable-static --disable-shared --with-pic

On a clean debian-based system, the full flow looks approximately like:

sudo apt-get update
sudo apt-get install autoconf
sudo apt-get install libtool
cd deps/opus
./autogen.sh
./configure --enable-static --disable-shared --with-pic
mkdir -p ../config/opus/[os]/[arch]
cp config.h ../config/opus/[os]/[arch]

And, then, the last step is to add the OS/Arch to package.json.

About

Opus bindings for Node.js

Resources

License

Releases

No releases published

Packages

No packages published