[Ubuntu][linux] Flac vers Mp3, optimisé pour smartphone

Riper un CD en Flac c'est bien pour la Hifi @ home, mais la donne change quand il s'agit d'écouter sa musique sur smartphone. On va voir comment optimiser la conversion mp3, pour une réduction de la taille des fichiers, avec un minimum de perte de qualité sonore.

 

Quelques notions concernant le mp3 :

Bitrate Constant (CBR). Quand vous encodez un fichier en bitrate constant (CBR), vous choisissez un bitrate prédéfini et LAME cible ce bitrate sur la totalité du fichier. Cela signifie que chaque seconde du fichier comporte le même nombre de bits, quelque soit la complexité du son. Chaque seconde sur un fichier encodé en CBR a la même qualité. Comme le silence possède le même nombre de bits que des sons complexes, les fichiers encodés en CBR sont plus lourds que ceux encodés en VBR ou ABR. Cela signifie également que les fichiers encodés en CBR ont une taille prévisible.
Bitrate Variable (VBR). Quand vous encodez un fichier en bitrate variable (VBR), vous choisissez une qualité donnée et LAME cible cette qualité, laissant le bitrate varier tout au long du fichier. Cela signifie que chaque seconde du fichier comporte un nombre de bits différent, nombre qui dépend de la complexité du son à cet instant. Par exemple, une seconde de silence recevra bien moins de bits qu’une seconde forte et tonitruante. Comme les fichiers encodés en VBR ciblent une qualité donnée au lieu d’un bitrate donné, leur taille est moins prévisible. LAME possède certains préréglages VBR qui vont de V0 à V9. V0 est la meilleure qualité et V9 la moins bonne. Les deux préréglages les plus communs sont le V0 (avec un bitrate cible de 245 kbps) et le V2 (avec un bitrate cible de 190 kbps).

Du biterate choisi, dépendra la qualité de son et la taille du fichier en Mo. Voyons comment trouver l'équilibre.

Les outils :

*Avconv ou ffmpeg (qui est installé par défaut sur la plupart des distro). Étant sur Manjaro, au moment de la rédaction, j'utiliserai ffmpeg dans cet exemple. Il est possible d'installer avconv via le paquet libav-tools sous Ubuntu/Mint. On prendra soin d'adapter la ligne de commande en fonction (cf vidéo) .

*Spek pour l'analyse des fichier audio (disponibles dans tous les gestionnaires de paquets)

*Tableau de conversion ffmpeg

Option Kbit/s Bitrate range kbit/s ffmpeg equiv.
-b 320 320 320 CBR (non VBR) example -b:a 320k (NB this is 32KB/s, or its max)
-V 0 245 220...260 -q:a 0 (NB this is VBR from 22 to 26 KB/s...)
-V 1 225 190...250 -q:a 1
-V 2 190 170...210 -q:a 2
-V 3 175 150...195 -q:a 3
-V 4 165 140...185 -q:a 4
-V 5 130 120...150 -q:a 5
-V 6 115 100...130 -q:a 6
-V 7 100 80...120 -q:a 7
-V 8 85 70...105 -q:a 8
-V 9 65 45...85 -q:a 9

 

La conversion se fera via une ligne de commande dont on adaptera les fonctions via le tableau ffmpeg. On devra se placer avec le terminal dans le dossier où se trouvent les fichiers à convertir :

cd ~/musique/monalbum

La conversion choisie dans l'exemple sera le VBR V0 ~256k .

for f in ./*.flac; do ffmpeg -i "$f" -q:a 0 "${f%.*}.mp3"; done

Inter-changer ffmpeg ou avconv selon le cas. -q:a 0 correspondant ici au V0

La commande pour une conversion en CBR @ 320 sera :

for f in ./*.flac; do ffmpeg -i "$f" -b:a 320k "${f%.*}.mp3"; done

On va terminer par l'analyse spectrale d'une même piste, avec Spek, permettant de visualiser la dégradation du signal audio en fonction de la compression. On se rendra ainsi compte que le signal entre un fichier en CBR 320 et un VBR V0 est très proche et qu' à l'écoute, la différence s’avère inaudible. Adopter le VBR aura permis de gratter quelques précieux Mo sur notre carte SD, d'autant que selon la qualité du matériel, puce son et casque il est possible de gagner encore un peu en utilisant le format V2. Testez si vos oreilles le supportent 🙂 Sachez qu'en vieillissant, l'oreille perd sa capacité à entendre les hautes fréquences. A 40/50 ans, en règle générale tout ce qui est au delà de 16 Khz est devenu inaudible.

Flac > Mp3 CBR 320 > Mp3 VBR V0 (~256k) > Mp3 VBR V2 (~192k) > Mp3 VBR V5 (~128k)

FMR

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *