0.3.1 • Published 6 months ago
ac3.js v0.3.1
AC3.js
JavaScript AC-3 (ATSC A/52) decoder for the Aurora.js audio framework.
Installation
yarn add ac3.js
Usage
Simple
import {AC3SimpleDecoder} from 'ac3.js';
import fs from 'fs';
// This example loads an AC-3 audio file and writes the PCM data to file.
// The output file is in PCM signed 16-bit interleaved format.
// Initialize input and output stream
const inputStream = fs.createReadStream('example.ac3');
const outputStream = fs.createWriteStream('example.pcm');
// Initialize simple decoder
const simpleDecoder = new AC3SimpleDecoder(inputStream);
// Write PCM data to output stream (data is an Uint8Array)
simpleDecoder.on('data', (data) => {
outputStream.write(data);
});
Aurora.js
import {AC3Decoder, AC3Demuxer} from 'ac3.js';
import AV from 'av';
// This example loads an AC-3 audio file and plays it.
// - In Node.js this should play the audio using the speaker module.
// - In the browser this should play the audio using the Web Audio API.
// Register demuxer and decoder
AV.Demuxer.register(AC3Demuxer);
AV.Decoder.register('ac3', AC3Decoder);
// Initialize player
const player = AV.Player.fromURL('https://example.org/example.ac3');
player.on('format', (format) => console.log('format', format));
player.on('duration', (duration) => console.log('duration', duration));
player.on('progress', (progress) => console.log('progress', progress));
player.on('ready', () => console.log('ready'));
player.on('end', () => console.log('end'));
player.on('error', (error) => console.error(error));
// Start the player
player.play();
For detailed information on how to use Aurora.js, check out the documentation.
Authors
License
AC3.js is available under the terms of the MIT license.
Progress
Syntax implementation
syncframe
syncinfo
bsi
audblk
auxdata
errorcheck
Decoding implementation
- Input Bit Stream
- Synchronization
- Error Detection
- Unpack BSI
- Unpack Side Information
- Decode Exponents
- Bit Allocation
- Process Mantissas
- Decoupling
- Rematrixing
- Inverse Transform
- Window, Overlap/Add
- Downmixing
- PCM Output Buffer
- Output PCM
Roadmap
- Support all downmixing modes
- Support Enhanced AC-3 (E-AC-3)
- Error detection
- Unit tests