-
Notifications
You must be signed in to change notification settings - Fork 10
Implementations
Martijn van Beurden edited this page Mar 19, 2022
·
13 revisions
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.
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 |
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 |
Name | Programming language | License | Container support | Remarks | Limitations |
---|---|---|---|---|---|
libFLAC | C and C++ | 3-clause BSD | FLAC, OGG | Reference implementation |
|
libavcodec | C | LGPL | FLAC, OGG, MKV, MP4 | Based on libflake |
|
libflake | C | LGPL | FLAC | First implementation of variable blocksize encoding, partly merged into libavcodec, development has stalled |
|
-
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