/aac.js

AAC decoder in JavaScript.

Primary LanguageJavaScriptGNU Lesser General Public License v3.0LGPL-3.0

AAC.js: A JavaScript AAC Decoder

Advanced Audio Coding (AAC) is a standardized, high quality lossy audio codec, designed as the successor to the MP3 format. AAC is now one of the most widely deployed audio codecs, and such names as the iTunes Store distribute music in the AAC format.

AAC can be played in a limited number of browsers using the HTML5 audio element, however, some browsers do not support the codec for various reasons. AAC.js enables playback and other decoding tasks in all browsers using the Aurora.js audio framework.

AAC.js is based on the prior work of many open source projects, including JAAD, FAAD, FFMpeg, and Helix Datatype.

Demo

You can check out a demo alongside our other decoders MP3.js, flac.js, and alac.js. Currently, AAC.js works properly in the latest versions of Firefox, Chrome, and Safari.

Authors

AAC.js was written by @devongovett of Audiocogs.

Building

We use browserify to build AAC.js. You can download a prebuilt version from the Github releases page. To build AAC.js for the browser yourself, use the following commands:

npm install
make browser

This will place a built aac.js file, as well as a source map in the build/ directory.

AAC.js depends on Aurora.js, our audio codec framework. For detailed information on how to use Aurora.js, check out the documentation.

Features

AAC.js supports the AAC Low Complexity Profile, which is the most common profile. Support for the Main, High Efficiency (Spectral Band Replication) and High Efficiency v2 (Spectral Band Replication + Parametric Stereo) profiles is planned. Other profiles, such as the low delay, and error resilient profiles are not supported, but we'd love pull requests if you feel motivated to implement them! :)

License

AAC.js is licensed under the LGPL.

AAC.js is free software; you can redistribute it and/or modify it 
under the terms of the GNU Lesser General Public License as 
published by the Free Software Foundation; either version 3 of the 
License, or (at your option) any later version.

AAC.js is distributed in the hope that it will be useful, but WITHOUT 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General 
Public License for more details.