Convertir des fichiers FLAC avec les outils de macOS

Depuis quelques années, il y a un logiciel (XLD) que j’installe essentiellement pour un usage (rare) : convertir des FLAC en ALAC. Et je me suis rendu compte que macOS intégrait le nécessaire.

Apple et le FLAC, c’est compliqué. macOS supporte le codec de compression sans pertes depuis High Sierra (iOS 11 pour les appareils mobiles) mais Musique (ex-iTunes) n’accepte pas les fichiers FLAC, ce qui est… énervant. En fait, Apple met en avant l’ALAC pour cet usage et si le codec d’Apple offre la même qualité (sans pertes, donc), le FLAC compresse mieux et possède des mécanismes de corrections d’erreurs. Dans l’exemple qui va suivre, mon album en FLAC pèse 777 Mo, le même en ALAC monte à 1,23 Go. Pour la correction d’erreurs, le FLAC peut détecter les problèmes, même si c’est normalement assez rare. Si par exemple vous avez un périphérique de stockage qui génère des erreurs, vos fichiers ALAC seront corrompus sans bruit, alors qu’il est possible de le détecter en FLAC.

Malgré tout, comme j’utilise Musique, je dois de temps en temps convertir du FLAC en ALAC, et je passais par XLD. Mais en fait, une ligne de commande sous macOS permet de le faire : afconvert.

La commande de base, c’est ça : afconvert votre_fichier_flac -o votre_fichier_ALAC -f m4af -d alac

Le -f indique le conteneur (WAV, MPEG-4, AIFF, etc.), ici le MPEG-4 Audio, le -d le codec, ici ALAC. Il existe des tas d’autres possibilités (AC3, AAC, MP3, etc.). Attention, la commande d’Apple a un défaut (rédhibitoire pour certains), elle ne garde pas les métadonnées.

Vous allez me dire, pourquoi passer du FLAC à l’ALAC et ne pas encoder directement en ALAC ? En réalité, c’est ce que je fais : quand j’encode des CD, c’est en ALAC. Mais parfois, j’achète de la musique en ligne (ou je télécharge, il faut être honnête) et c’est souvent en FLAC. L’exemple que je vais utiliser est un peu fallacieux : c’est la version Hi-Res Audio d’un album, achetée sur Qobuz, et le site propose le FLAC… et l’ALAC.

Pour tester, j’ai donc téléchargé l’album en FLAC, et convertit le tout avec la commande suivante. Elle permet de convertir tous les fichiers d’un dossier du FLAC vers l’ALAC.

export IFS=$'\n'
for x in `ls *.flac`; do afconvert -v -f m4af -d alac $x ${x%flac}m4a; done

Le résultat est donc sans les métadonnées, et bizarrement un peu gros. C’est un album en 24 bits et 96 kHz qui pèse 777 Mo en FLAC, 1,23 Go une fois converti en ALAC par l’outil d’Apple et 782 Mo une fois téléchargé en ALAC à la source. L’encodeur doit être optimisé pour la vitesse avec afconvert, ce qui produit des fichiers plus gros. Dans tous les cas, je peux me passer de XLD pour mon usage, et c’est un logiciel de moins sur mon Mac. La solution d’Apple n’est pas parfaite (loin de là) mais a le mérite d’exister et suffit pour mon usage (très) occasionnel.