The FLAC project consists of:
- the stream format
- libFLAC, a library of reference encoders and decoders, and a metadata interface
- libFLAC++, an object wrapper around libFLAC
- flac, a command-line wrapper around libFLAC to encode and decode .flac files
- metaflac, a command-line metadata editor for .flac files
- input plugins for various music players (Winamp, XMMS, foobar2000, and more in the works)
"Free" means that the specification of the stream format is in the public domain (the FLAC project reserves the right to set the FLAC specification and certify compliance), and that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any patent. It also means that the sources for libFLAC and libFLAC++ are available under The New BSD license and the sources for flac and metaflac applications, and the plugins are available under the GPL.
The FLAC codec comes with its own transport system, termed Native FLAC. A FLAC stream can also be encapsulated in an Ogg container, the result being termed OggFLAC. The details of how to do this are called ogg mapping.
FLAC is distinguished from general lossless algorithms such as ZIP and gzip in that it is specifically designed for the efficient packing of audio data; while ZIP may compress a CD-quality audio file 20–40%, FLAC achieves compression rates of 30–70%.
While lossy codecs can achieve ratios of 80–90+%, they do this at the expense of discarding data from the original stream. Though FLAC uses a similar technique in its encoding process, it also adds "residual" data to allow the decoder to restore the original waveform flawlessly.
FLAC has become the preferred lossless format for trading live music online. It has a smaller file size than Shorten, and unlike MP3, it's lossless, which ensures the highest fidelity to the source material, which is important to live music traders. It has recently become a favorite trading format of non-live lossless audio traders as well.
There are other lostless audio codecs, however: WAVPACK (marginally better compression, slower), TAK, Monkey's audio and some more.
FLAC compiles on many platforms: most Unices (including Linux, *BSD, Solaris, and Mac OS X), DOS, Windows, BeOS, and OS/2. There are build systems for autoconf/automake, MSVC, Watcom C, and Project Builder.
Non-PC playback support
FLAC is supported by a wide range of devices. The portable players Vorbis support matrix also contains information about FLAC support. Other examples of FLAC supporting devices are:
- iAudio: http://www.iaudio.com
- Kenwood Music Keg
- Naim HDX: http://www.naim-audio.com/products/hdx.html
- PhatNoise Home Media Player
- PhatNoise Phatbox
- Rio Karma: http://www.digitalnetworksna.com/rioaudio/
- SlimDevices Squeezebox: http://www.slimdevices.com
FLAC is supported by the following chips and/or chipsets:
- VLSI Solution OY's VS1053b decodes FLAC