Samiksha Jaiswal (Editor)

FAAC

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Written in
  
C

Available in
  
English

Platform
  
Cross-platform

Original author(s)
  
Menno Bakker and others

Initial release
  
October 9, 2001 (2001-10-09)

Stable release
  
1.28 / February 10, 2009; 8 years ago (2009-02-10)

FAAC or Freeware Advanced Audio Coder is a software project which includes the AAC encoder FAAC and decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Audio object types (LC, Main, LTP for encoding and SBR, PS, ER, LD for decoding), file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless encoding/decoding and MP4 metadata tags. The encoder and decoder is compatible with standard-compliant audio applications using one or more of these object types and facilities. It also supports Digital Radio Mondiale.

Contents

FAAC and FAAD2, being distributed in C source code form, can be compiled on various platforms and are distributed free of charge. FAAD2 is free software. FAAC contains some code which is published as Free Software, but as a whole it is only distributed under a proprietary license.

FAAC was originally written by Menno Bakker.

FAAC encoder

FAAC stands for Freeware Advanced Audio Coder. The FAAC encoder is an audio compression computer program that creates AAC (MPEG-2 AAC/MPEG-4 AAC) sound files from other formats (usually, CD-DA audio files). It contains a library (libfaac) that can be used by other programs. AAC files are commonly used in computer programs and portable music players, being Apple Inc.'s recommended format for the company's iPod music player.

Some of the features that FAAC has are: cross-platform support, "reasonably" fast encoding, support for more than one "object type" of the AAC format, multi-channel encoding, and support for Digital Radio Mondiale streams. It also supports multi-channel streams, like 5.1. The MPEG-4 object types of the AAC format supported by FAAC are the "Low Complexity" (LC), "Main", and "Long Term Prediction" (LTP). The MPEG-2 AAC profiles supported by FAAC are LC and Main. The SBR and PS object types are not supported, so the HE-AAC and HE-AACv2 profiles are also not supported. The object type "Low Complexity" is the default and also happens to be used in videos meant to be playable for portable players (like Apple's iPod) and used by video-hosting sites (like YouTube).

FAAC has been evaluated as a somewhat "lower quality" option than other aac encoders.

Alternatives for AAC encoding in Unix-like operating systems

FAAC is one of six alternatives that Linux/Unix users have for creating AAC files. The others are:

  • The Fraunhofer-developed "FDK AAC" encoder library included as part of Android. The FDK AAC source code is licensed under a custom-copyleft license, and has been ported to other platforms as libfdk-aac. The library is built around fixed-point math and supports only 16-bit PCM input.
  • The Nero AG-developed "Nero AAC Codec", which has a proprietary license, and is not available for the entire range of hardware architectures that these operating systems are able to run. Nero no longer develops this encoder, but the package is still available, and it remains a high-quality option for AAC encoding.
  • The libavcodec native AAC encoder (separate versions maintained by FFmpeg and Libav) was experimental but considered "better than vo-aacenc" in at least some tests. It was written by Konstantin Shishkov, and released under version 2.1 of the LGPL. The AAC encoder used in FFmpeg's version of libavcodec was significantly improved for version 3.0 of FFmpeg and is no longer considered experimental. Libav has not merged this work.
  • libvo_aacenc, the Android VisualOn AAC encoder. This encoder was replaced in Android by the FDK AAC encoder mentioned above, and is considered a poor-quality option.
  • The (nonfree) libaacplus which implements the High-Efficiency Advanced Audio Coding.
  • Mac OS X users can utilize Apple's AAC encoder with the command-line afconvert tool.
  • FAAD2 decoder

    FAAD2 is Freeware Advanced Audio (AAC) Decoder including SBR decoding. It is MPEG-2 and MPEG-4 AAC decoder and supports MPEG-4 audio object types LC, Main, LTP, LD, ER, SBR and PS, which can be combined also to HE-AAC and HE-AACv2 Profile (AAC LC+SBR+PS). It contains a library (libfaad) that can be used by other programs.

    FAAD and FAAD2 were originally written by Menno Bakker from Nero AG. FAAD2 is the successor to FAAD1, which was deprecated.

    FAAD is Freeware Advanced Audio Decoder. It was first released in 2000 and it did not support SBR and PS audio object types. The last version of FAAD1 was 2002-01-04. All development later focused in FAAD2. The SBR decoding support (HE-AAC) was added in the version release on 25 July 2003. FAAD2 version 2.0 was released on 6 February 2004.

    Licensing

    FAAC contains code based on the ISO MPEG-4 reference code, whose license is not compatible with the LGPL license. Only the FAAC changes to this ISO MPEG-4 reference code are licensed under the LGPL license. The ISO MPEG-4 reference software was published as ISO/IEC 14496-5 (MPEG-4 Part 5: Reference software) and it is freely available for download from ISO website. ISO/IEC gives users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-2 NBC/MPEG-4 Audio standards. Those intending to use this software module in hardware or software products are advised that this use may infringe existing patents.

    FAAD2 is licensed under the GPL v2 (and later GPL versions). Code from FAAD2 is copyright of Nero AG (the "appropriate copyright message" mentioned in section 2c of the GPLv2). The source code contains a note that the use of this software may require the payment of patent royalties. Commercial non-GPL licensing of this software is also possible.

    FAAD (FAAD1) modifications to the ISO MPEG-4 AAC reference code were distributed under the GPL.

    Other software

    FAAC and FAAD2 is used in the following software products and libraries:

  • Avidemux video editing software.
  • CDex uses FAAC encoder.
  • FFmpeg supports AAC encoding through external library libfaac, and using its experimental native encoder.
  • GStreamer multimedia framework uses FAAC and FAAD.
  • MPlayer uses FAAD2.
  • VLC media player uses the FAAC (encoder) and FAAD (decoder) to provide support for AAC audio.
  • Music Player Daemon uses FAAD2
  • There is also other software that uses FAAC libraries.

    References

    FAAC Wikipedia