Skip to content

Implementations

Martijn van Beurden edited this page Mar 18, 2022 · 13 revisions

FLAC playback hard- and software

For a (non-exhaustive) list of playback hardware and software tested against this set of FLAC test files see this page at the Hydrogenaud.io wiki.

FLAC decoding libraries

Name Programming language License Container support Remarks
libFLAC C and C++ 3-clause BSD FLAC, OGG Reference implementation
libavcodec C LGPL FLAC, OGG, MKV, MP4
dr_flac C public domain or MIT no attribution FLAC, OGG, MP4 Header-only library
libfoxenflac C AGPL 3.0 FLAC Focus on low resource usage, embedded use
flac Go Unlicense FLAC
FLAC-library-Java Java GPL 3.0 FLAC
Claxon Rust Apache 2.0 FLAC, OGG, MP4 No seeking support
Symphonia Rust MPL 2.0 FLAC, OGG, MKV, MP4

FLAC decoding library wrappers and language bindings

This is a non-exhaustive list of wrappers available for the libraries listed in the previous section.

Name Wraps Programming language License Remarks
libsndfile libFLAC C LGPL
avcpp libavcodec C++ LGPL or BSD
ExoPlayer libFLAC Java (Android) Apache 2.0
libflacjs libFLAC Javascript/WASM MIT
PyAV libavcodec Python 3-clause BSD
pyFLAC libFLAC Python Apache 2.0
pysndfile libFLAC Python LGPL

FLAC analysis tools

  • flac, tool usually bundled with libFLAC to encode from and decode to uncompressed file formats like WAV and AIFF. It also has an analysis mode to represent a FLAC file in human-readable form
  • metaflac, tool usually bundled with libFLAC to view and modify the file-level metadata of FLAC files
  • fq, tool to help analyse a FLAC file (among other file formats) by representing it in human-readable form
  • flac.tcl, tool that decodes a FLAC file with a very verbose human-readable analysis of it
Clone this wiki locally