FLAC est un logiciel open source qui peut réduire la quantité d'espace de stockage nécessaire pour stocker les signaux audio numériques sans avoir besoin de supprimer des informations.
Les fichiers lus et produits par ce logiciel sont appelés fichiers FLAC. Comme ces fichiers (qui suivent le format FLAC) peuvent également être lus et écrits par d'autres logiciels, ce logiciel est souvent appelé l'implémentation de référence FLAC.
FLAC a été développé par des bénévoles. Si vous souhaitez aider, consultez CONTRIBUTING.md pour plus d'informations.
FLAC est composé de
flac
, un programme en ligne de commande pour encoder et décoder des fichiersmetaflac
, un programme en ligne de commande pour afficher et éditer les métadonnées FLACLes bibliothèques (libFLAC, libFLAC++) sont sous licence de type BSD de Xiph.org (voir COPYING.Xiph). Tous les autres programmes et plugins sont sous licence GNU General Public License (voir COPYING.GPL). La documentation est sous licence GNU Free Documentation License (voir COPYING.FDL).
Pour la documentation des outils de ligne de commande flac
et metaflac
, consultez le répertoire man, qui contient les fichiers flac.md et métaflac.md.
La documentation de l'API est en HTML et est générée par Doxygen. Il se trouve dans le répertoire doc/html/api. Il est inclus dans une archive tar de version et doit être construit avec Doxygen lorsque la source est extraite directement de git.
Les exemples de répertoire contiennent des exemples de code source sur l'utilisation de libFLAC et libFLAC++.
La documentation concernant le format FLAC lui-même (qui peut être utilisé pour créer des logiciels de lecture et d'écriture FLAC indépendants de libFLAC) était incluse dans les versions précédentes, mais peut désormais être trouvée sur https://datatracker.ietf.org/doc/draft-ietf -cellar-flac/ De plus, un ensemble de fichiers pour les tests de conformité appelé banc de test du décodeur FLAC peut être trouvé sur https://github.com/ietf-wg-cellar/flac-test-files
Si vous avez des questions sur FLAC auxquelles ce document ne répond pas, veuillez les soumettre au tracker suivant afin que ce document puisse être amélioré :
https://github.com/xiph/flac/issues
Tous les composants du projet FLAC peuvent être construits avec une variété de compilateurs (y compris GCC, Clang, Visual Studio, Intel C++ Compiler) sur de nombreuses architectures (y compris x86, x86_64, ARMv7, ARMv8 et PowerPC) pour de nombreux systèmes d'exploitation différents.
Pour ce faire, FLAC propose deux systèmes de construction : un utilisant les outils automatiques de GNU et un avec CMake. Les deux diffèrent légèrement dans les options de configuration, mais doivent être considérés comme équivalents pour la plupart des cas d'utilisation.
FLAC fournissait des fichiers spécifiquement pour la construction avec Visual Studio, mais ceux-ci ont été supprimés au profit de l'utilisation de CMake.
CMake est un système de construction multiplateforme. FLAC peut être construit sur Windows, Linux, Mac OS X à l'aide de CMake.
Vous pouvez utiliser la CLI ou l'interface graphique de CMake. Nous vous recommandons d'avoir un dossier de build séparé en dehors du référentiel afin de ne pas le gâcher avec les fichiers générés. Il est cependant possible de faire ce qu'on appelle une construction dans l'arborescence, dans ce cas /path/to/flac-build dans les exemples suivants est égal à /path/to/flac-source.
Accédez à votre dossier de build et exécutez quelque chose comme ceci :
/path/to/flac-build$ cmake /path/to/flac-source
ou par exemple dans le shell Windows
C:pathtoflac-build> cmake pathtoflac-source
(à condition que cmake soit dans votre variable %PATH%)
Cela générera des scripts de build pour le système de build par défaut (par exemple Makefiles pour UNIX). Après cela, vous démarrez la compilation avec une commande comme celle-ci :
/path/to/flac-build$ make
Et ensuite, vous pouvez exécuter des tests ou installer les bibliothèques et les en-têtes construits
/path/to/flac-build$ make test
/path/to/flac-build$ make install
Si vous souhaitez utiliser un système de construction autre que celui par défaut, ajoutez l'indicateur -G à cmake, par exemple :
/path/to/flac-build$ cmake /path/to/flac-source -GNinja
/path/to/flac-build$ ninja
ou:
/path/to/flac-build$ cmake /path/to/flac-source -GXcode
Utilisez cmake --help pour voir la liste des générateurs disponibles.
Par défaut, CMake recherchera OGG. Si CMake ne parvient pas à le trouver, vous pouvez aider CMake en spécifiant le chemin exact :
/path/to/flac-build$ cmake /path/to/flac-source -DOGG_ROOT=/path/to/ogg
Si vous souhaitez que CMake construise OGG avec FLAC, vous pouvez placer les sources ogg directement dans le répertoire source flac en tant que sous-répertoire avec le nom ogg, par exemple :
/path/to/flac-source/ogg
Si vous ne souhaitez pas créer de flac avec le support OGG, vous pouvez dire à CMake de ne pas rechercher OGG :
/path/to/flac-build$ cmake /path/to/flac-source -DWITH_OGG=OFF
D'autres options de FLAC (par exemple, la création d'une bibliothèque ou de documents C++) peuvent également être mises dans cmake via l'indicateur -D. Si vous voulez savoir quelles options sont disponibles, utilisez -LH :
/path/to/flac-build$ cmake /path/to/flac-source -LH
Il est probable que vous préféreriez utiliser l'interface graphique CMake si vous utilisez Visual Studio pour créer FLAC. C'est essentiellement le même processus que la construction à l'aide de CLI.
Ouvrez cmake-gui. Dans la fenêtre, sélectionnez un répertoire source (la racine du référentiel), un répertoire de construction (un autre répertoire en dehors du référentiel). Appuyez ensuite sur le bouton "Configurer". CMake vous demandera quel système de build vous préférez. Choisissez la version de Visual Studio que vous avez sur votre système, choisissez si vous souhaitez créer pour Win32 ou x64. Appuyez sur OK.
Une fois CMake terminé, vous pouvez modifier la configuration à votre guise et si vous modifiez quelque chose, exécutez à nouveau Configure. Avec le bouton "Générer", CMake crée des fichiers Visual Studio, qui peuvent être ouverts depuis Visual Studio. Avec le bouton "Ouvrir le projet" CMake lancera Visual Studio et ouvrira la solution générée. Vous pouvez utiliser les fichiers du projet comme d'habitude mais n'oubliez pas qu'ils ont été générés par CMake. Cela signifie que vos modifications (par exemple certains indicateurs de compilation supplémentaires) seront perdues lors de la prochaine exécution de CMake.
CMake recherche par défaut OGG sur votre système et renvoie une erreur s'il ne le trouve pas. Si vous souhaitez créer OGG avec FLAC, vous pouvez télécharger les sources OGG et les extraire dans un sous-répertoire du répertoire source FLAC avec le nom ogg (c'est-à-dire /path/to/flac-source/ogg) avant d'exécuter CMake. Si vous ne souhaitez pas créer FLAC avec le support OGG, décochez la case suivant l'indicateur WITH_OGG dans la liste des variables dans la fenêtre cmake-gui et exécutez à nouveau "Configurer".
Si CMake ne parvient pas à trouver le compilateur MSVC, l'exécution de cmake-gui à partir de l'invite de commande MS Developer devrait aider.
FLAC utilise autoconf et libtool pour la configuration et la construction. Pour configurer une build, ouvrez une ligne de commande/un terminal et exécutez ./configure
Vous pouvez fournir des options à cette commande, qui sont répertoriées en exécutant ./configure --help
.
Dans le cas où le script de configuration n'est pas présent (par exemple lors de la construction à partir de git et non à partir d'une archive tar de version), il peut être généré en exécutant ./autogen.sh
. Cela peut cependant nécessiter un package de développement libtool.
Après la configuration, construisez avec make
, vérifiez la construction avec make check
et installez avec make install
. L'installation peut nécessiter des privilèges d'administrateur, c'est-à-dire sudo make install
.
L'étape « faire une vérification » est facultative ; omettez-le pour ignorer tous les tests, qui peuvent prendre environ une heure. Même s'il s'arrête avec un message explicite en cas d'échec, il imprime beaucoup de choses, vous souhaiterez donc peut-être capturer la sortie dans un fichier si vous rencontrez un problème. De plus, n'exécutez pas « make check » en tant que root car cela perturbe certains tests.
En résumé :
./configure
make && make check
sudo make install
libFLAC s'est développé au fil du temps à mesure que davantage de fonctionnalités ont été incluses, mais une grande partie peut être inutile pour une implémentation intégrée particulière. Les parties inutilisées peuvent être supprimées par une simple modification de configure.ac et src/libFLAC/Makefile.am ; le graphique de dépendances suivant montre quels modules peuvent être élagués sans décomposer davantage les choses :
metadata.h
stream_decoder.h
format.h
stream_encoder.h
stream_decoder.h
format.h
stream_decoder.h
format.h
En d’autres termes, pour les applications de décodage pur, l’encodeur de flux et les interfaces d’édition de métadonnées peuvent être supprimés en toute sécurité. Notez que ceci est spécifique à la création de bibliothèques pour une utilisation intégrée. Les outils de ligne de commande ne fournissent pas une telle compartimentation et nécessitent une version complète de libFLAC pour fonctionner.
Il existe une section dédiée à l'utilisation embarquée dans la documentation HTML de l'API libFLAC (voir doc/html/api/index.html).
En outre, il existe plusieurs endroits dans le code libFLAC avec des commentaires marqués « OPT : » où un #define peut être modifié pour activer un code qui pourrait être plus rapide sur une plate-forme spécifique. Les expérimenter peut produire des binaires plus rapides.