Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/09/2014, à 18:52

erpiu

[Résolu] Rhythmbox 14.04 Encodage de CD en mp3 - Pas de débit constant

Rhythmbox pemet d'encoder des CD en différents formats, dont le format mp3 (si le paquet ubuntu-restricted-extras est installé).
Sous Ubuntu 14.04, Rhythmbox (version 3.0.2) permet en outre de choisir (voir Rhythmbox > Edition > Préférences > Musique) entre :
- un encodage à débit constant sélectionné par l'utilisateur,
- un encodage à débit variable mais niveau de qualité fixe choisi par l'utilisateur.
- un encodage selon des paramètres par défaut (dont les valeurs sont a priori inconnues),
- un encodage suivant un ensemble de paramètres (preset) appelé "Ubuntu".

Après plusieurs tests, analyse des fichiers générés (notamment avec mp3diags), analyse des fichiers de configuration /usr/share/rhythmbox/rhythmbox.gep et /usr/share/gstreamer-1.0/presets/GstLameMP3Enc.prs) et parcours des sources de rhythmbox, il apparaît que :
- l'encodage suivant les paramètres par défaut correspond à un encodage à débit variable et niveau de qualité fixe 4,
- l'encodage suivant le preset "Ubuntu" correspond à un encodage à débit variable et niveau de qualité fixe 2,
- mais .... l'encodage à débit constant  produit en réalité un contenu  A DEBIT VARIABLE (VBR) : Bug!!

Correction:

Pour obtenir un encodage qui soit réellement à débit constant, il faut modifier le fichier de configuration /usr/share/rhythmbox/rhythmbox.gep comme suit :

A la fin du fichier, dans la section [rhythmbox-encoding-lamemp3enc-cbr], ajouter après la ligne "target = 1" la ligne :

cbr = true

   
Explications :

Rhythmbox utilise la bibliothèque Gstreamer-1.0 pour l'encodage (et le décodage) des contenus. Pour le format mp3, il utilise donc l'encodeur lame (lamemp3enc) qui permet de choisir (voir, dans un terminal, gst-inspect-1.0 lamemp3enc):
- soit d'encoder à un niveau de qualité fixe (options target = Quality et quality = xxx) et produire ainsi un contenu naturellement à débit variable,
- soit d'encoder en donnant la priorité au contrôle du débit (options target = Bitrate et bitrate = yyyy) et, dans ce cas, de choisir soit un débit constant (option cbr = true), soit un débit variable (option cbr = false) mais limité. Dans ce dernier cas, l'encodeur garantit que le débit variable ne dépasse pas la valeur yyyy.

Les diverses options de l'encodeur lamemp3enc utilisée par Rhythmbox se retrouvent dans le fichier /usr/share/gstreamer-1.0/presets/GstLameMP3Enc.prs ou dans sa copie propre à chaque utilisateur, ~/.local/share/gstreamer-1.0/presets/GstLameMP3Enc.prs.

Par défaut, Rhythmbox ne propose que deux des 3 options d'encodage ci-dessus à l'utilisateur :
- l'encodage intitulé à "Débit binaire variable" qui correspond à target = Quality et quality = xxxx,
- l'encodage intitulé à "Débit binaire constant" qui correspond à target = Bitrate, bitrate = yyyy et, avec la correction ci-dessus, cbr = true.

Si l'on souhaite enrichir ces choix et autoriser Rhythmbox à proposer la troisième option, à savoir un encodage à débit variable mais limité, il suffit de modifier le fichier de configuration /usr/share/rhythmbox/rhythmbox.gep comme suit :

A la fin du fichier, dans la section [rhythmbox-encoder-settings], remplacer la ligne "lamemp3enc-cbr = bitrate" par :

lamemp3enc-cbr = bitrate,cbr

Cette simple modification permet la reconfiguration de l'interface homme-machine de Rhythmbox et permet de spécifier, en cochant ou non une case, pour une valeur de débit indiquée, un encodage à débit constant à cette valeur ou à débit variable mais limitée à la valeur donnée.

En toute rigueur, pour plus de clarté, il faudrait dans ce cas modifier aussi l'intitulé des options d'encodage et proposer quelque chose du genre :
    Encodage avec contrôle de la qualité
    Encodage avec contrôle du débit
   
Mais ceci est une autre histoire....

Note : Headers Xing manquants

Lorsque Rhythmbox génére un contenu à débit variable (à qualité fixe ou non), il ne génère plus, comme ce fut le cas dans des versions précédentes, les headers Xing qui sont nécessaires à certains players pour afficher correctement la durée des morceaux de musique. On peut peut-être considérer ceci comme un bug, en tout cas, une régression.

Pour s'en sortir, plusieurs outils existent dont l'outil interactif mp3diags (voir logithèque) qui permet de corriger les divers défauts repérés sur les fichiers mp3. Une de ces corrections consiste à ajouter les headers xing là où ils sont nécessaires.

J'espère que ces diverses infos seront utiles à certains d'entre vous.

Hors ligne