Tags:,,,,, Posted in Debian,PS3,ligne de commande,planet-libre.org Leave a Comment

Depuis que j’ai une PS3, je tâche de tout faire avec. Manque de bol, elle ne lit pas les OGG. Je pense qu’elle ne les lira jamais. J’espère me tromper, mais vu que la PSP ne les lit toujours pas après plusieurs années – malgré un format ouvert, codec gratuit etc – il y a de quoi être déçu. Si quelqu’un de Sony lit ça, SVP, faites un effort, celui là ne coutera pas cher et beaucoup vous remercieront, vous pourrez même vendre des PS3 en plus avec de tels arguments… Dans les populations geek-o-linux dont je fais partie (promis, un de ces 4, j’achète un jeu).

Bon bref, en attendant, j’ai entrepris de convertir mes OGG en MP3 en masse (oui je sais, y’a reperte de qualité, mais entre ça et pas de qualité du tout…). Après avoir vainement cherché des outils tout fait, j’ai opté pour un bon vieux script Linux des familles…

J’ai même tenté – comble du bourrinage – de faire tourner cette moulinette sur mon Ubuntu/PS3 depuis un disque USB contenant mes morceaux. Ca marche, mais ça fait en gros du temps réel au niveau performance ; donc c’est un peu long si vous avez beaucoup de disques à convertir.
J’ai tenté depuis une Ubuntu sur un PC, ça le fait nickel et puis finalement, pour diverses raisons, je l’ai fait depuis une Debian. C’est pareil me direz-vous, sauf que Debian n’a pas packagé le programme “LAME“…. pas officiellement. Forcément, LAME = encodeur mp3 ; mp3 = copyright => rejeté par Debian.

Installation des outils de conversions et récup de tags

Alors, quel que soit l’OS (Debian, Ubuntu ou autre), il faudra installer les programmes ogg123, mp3info et lame pour l’encodage.
Notez que le tout se fait par décodage en WAV “pipé” vers l’encodeur. Point de fichier temporaire.
Faites donc un :

apt-get install vorbis-tools mp3info lame

Sour Debian, il faut déclarer un “repository” non-officiel, par exemple en ajoutant dans votre fichier /etc/apt/sources.list la ligne suivante :

deb http://ftp.debian-unofficial.org/debian/ etch main non-free contrib

Puis en lançant la commande apt-get update.
Vous aurez peut-être besoin d’importer des clefs de signatures de paquets, voyez ici.
Une fois terminé, vous devriez avoir les programmes nécessaires au script ci-dessous.

Création du script

Créez quelque part un script nommé par exemple ogg2mp3 contenant :

#!/bin/sh

extraitTag() {
        TAG=` ogginfo "$1" | grep -i "$2" | awk -F'=' '{print $2}'`
}

fich="$1"
fich2="${fich%.*}"

extraitTag "$fich" album && album=$TAG
extraitTag "$fich" artist && artist=$TAG
extraitTag "$fich" title && title=$TAG
extraitTag "$fich" track && track=$TAG
extraitTag "$year" year && year=$TAG
ogg123 -d wav -f - "$fich" | lame -h - > "$fich2".mp3
mp3info -a "$artist" -l "$album" -t "$title" -n "$track" -y "$year" "$fich2".mp3

Libre à vous d’ajouter les TAG qu’il vous manque : genre etc.
Ajoutez les droits d’exécution au script via un chmod u+x ogg2mp3.

Lancement avec un find

L’idéal, à mon avis, est de lister tout le disque dur et pour chaque fichier OGG trouvé, d’appliquer la conversion. Ca se fait simplement grâce à une commande du style :

find /mon_rep_racine_de_musique -iname "*ogg" -exec ogg2mp3 {} \;

Ensuite, c’est une question de patience.

28 January 2008