58 lines
1.5 KiB
Markdown
58 lines
1.5 KiB
Markdown
|
node-opus
|
||
|
=========
|
||
|
### NodeJS native bindings to libopus
|
||
|
|
||
|
This module implements bindings for Opus v1.1 for Node.js.
|
||
|
|
||
|
```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`.
|