Ich gruppiere die Audio-Tracks meiner Hörbücher nach CDs. Dadurch ergibt sich eine zweistufige Ordnerstruktur. Auf der obersten Ebene werden die Verzeichnisse nach Autor und Titel benannt, darunter befinden sich die Ordner für die einzelnen CDs und darin befinden sich die Tracks der jeweiligen CD. Das sieht folgendermaßen aus:
Bei der Codierung für das Auto muss diese Ordnerstruktur natürlich erhalten bleiben. Außerdem müssen die Attribute (Tags) der einzelnen Tracks erhalten bleiben, damit im Auto nicht nur kryptische Dateinamen angezeigt werden.
Insgesamt benötigt man die drei Programme flac, metaflac und lame, um die Codierung durchführen zu können. Die Decodierung übernimmt flac, die Attribute werden mit metaflac ausgelesen und lame codiert alles zu entsprechenden MP3-Dateien, die von jedem MP3-fähigen Autoradio abgespielt werden können.
Mittels metaflac können die Tags eines jeden Tracks ermittelt werden:
$ metaflac --export-tags-to=- CD1/01\ -\ Nordemoor\ CD1_01_Die\ Worte\ Waren\ Mit\ Bleistift....flac TITLE=Nordemoor CD1_01_Die Worte Waren Mit Bleistift... ARTIST=Arnaldur Indridason TRACKNUMBER=1 TRACKTOTAL=16 ALBUM=Nordermoor ARTISTSORT=Arnaldur Indridason DISCNUMBER=1 DISCID=01102e10 MUSICBRAINZ_DISCID=KJNYnzSmMvZBLYakHUtVxKAy5uw-Dabei entsteht eine einfache Liste, die aus dem Tag-Namen, dem Gleichheitszeichen und dem jeweiligen Tag-Wert besteht.
Dekodiert man die Flac-Datei mit dem Befehl
$ flac -dcskann die Ausgabe direkt in den Lame-Codierer gepipet werden. Beim Aufruf von Lame müssen die zuvor ermittelten Tags als Komandozeilenargumente angegeben werden:
$ lame -S -b $BITRATE -h --tt "$TITLE" --tn "$TRACKNUMBER" \ --ty "$DATE" --ta "$ARTIST" --tl "$ALBUM" --add-id3v2 - "$MP3"Das muss für jede Datei gemacht werden und die Verzeichnishierarchie muss erhalten bleiben. Man will das also nicht per Hand machen. Es bietet sich an, dafür ein kleines Bash-Script zu erstellen. Mit dem Script f2m kann die Umwandlung problemlos für viele Hörbücher in einem Rutsch durchgeführt werden:
$ f2m ~/Audio/Hörbuch/*Dabei werden für alle Verzeichnisse in den Komandozeilenargumenten entsprechende Verzeichnisse für die MP3-Dateien erstellt.
Alle Flac-Dateien werden unter Beibehaltung der Tags in entsprechende MP3-Dateien
umgewandelt.
Der Quellcode des Scriptes ist in einem Mercurial-Repository auf Google-Code zu finden.