Aufmacher

Der richtige Dreh

Musik-CDs ins freie OGG-Format umwandeln

01.04.2007
Wer seine Musiksammlung von CD auf den PC überspielen möchte braucht Zeit und einen guten Encoder. LinuxUser hat sich die Alternativen zu den Standardwerkzeugen angeschaut und verrät, an welchen Reglern Sie drehen müssen.

MP3-Dateien erstellt man unter Linux mit lame, OGG-Vorbis-Dateien mit oggenc – theoretisch. In der Praxis führt bei MP3-Encodern kein Weg an Lame vorbei, für OGG-Fans gibt es aber zwei interessante Alternativen zum Standardtool:

  • Der Aotuv-Fork (Aoyumi's Tuned Vorbis) [1] optimiert OGG-Dateien mit kleinen Bitraten auf Klangqualität. Bei Bitraten unter 128 KBit/s klingen OGG-Vorbis-Dateien in der Regel schlechter als vergleichbare MP3s. Die Oggenc-Version von Aoyumi behebt dieses Manko. Seit Version 1.1.1 benutzt libvorbis einige Patches von Aoyumi, die Änderungen der Versionen 4.51 und Beta5 (auf der Heft-CD) sind aber noch nicht eingepflegt.
  • Der Lancer-Fork von Blacksword [2] ist auf Geschwindigkeit getrimmt. Dazu stellt Blacksword verschiedene Windows-Binaries bereit, die Optimierungen für einzelne Prozessorfamilien enthalten. Obwohl Blacksword auf seiner Homepage einen Patch mit den Sourcen zum Download bereitstellt, gibt es von Lancer noch keine Linux-Version. Das Windows-Programm lässt sich aber über Wine auch unter Linux nutzen.

Optimierungen

Generell gibt es zwei Möglichkeiten, ein Programm schneller zu machen: Der Entwickler stimmt entweder den Code auf einen bestimmten Prozessor oder eine Aufgabe optimal ab, oder er übergibt beim Übersetzen dem C-Compiler CPU-spezifische Optionen. In beiden Fällen arbeitet das fertige Programm dann nur noch auf dem passenden Prozessor. Für bestmögliche Ergebnisse müssten Linux-Distributoren folglich nicht nur separate Versionen für 32- und 64-Bit-Rechner zur Verfügung stellen, sondern auch für Athlon- und Duron-Rechner, für Pentium-M- und Pentium-4-Systeme und so weiter.

Den Code zu optimieren bringt jedoch deutlich mehr, als beim Kompilieren spezifische Parameter zu übergeben. Die Distributoren verzichten deshalb – aus verständlichen Gründen – auf Tuning dieser Art. Da die meiste Linux-Software im Quellcode vorliegt, steht es jedermann frei, selbst zu feilen und Parameter zu ändern (siehe Kasten "Compiler tunen").

Compiler tunen

Moderne Prozessoren bringen spezielle Befehlssatzerweiterungen mit, um bestimmte Rechenaufgaben nahezu parallel ablaufen. Zu den bekanntesten Vertretern der Gattung zählen "3DNow!" von AMD und "SSE" (Streaming SIMD Extensions) von Intel. Da nicht jede CPU diese Befehlssätze unterstützt, muss man beim configure-Aufruf dem Compiler explizit mitteilen, welche Erweiterungen er beim Übersetzen des Programms nutzen soll. Inwieweit das Programm dann von dieser Optimierung tatsächlich Gebrauch macht, hängt allerdings sehr stark vom Quellcode ab.

Auf der Heft-CD finden Sie im Verzeichnis LinuxUser/oggmp3/ogg die Datei ogg-suite.tar.gz. Sie enthält die aktuell stabile Version von libogg, libvorbis und den vorbis-tools. Im Tarball findet sich zudem das Skript compile-vorbis.sh: Es übersetzt und installiert in einem Aufruf alle drei Programmteile. Um die Ogg-Suite auf Ihren Prozessor zu optimieren, müssen Sie in diesem Skript in Zeile 2 die Parameter für CFLAGS= anpassen.

Die passenden Optionen verrät Ihnen das Script gcccpuopt[3], das Sie ebenfalls im Tarball finden. Alternativ rufen Sie den Befehl cat /proc/cpuinfo auf. Zeigt er unter flags zum Beispiel sse2 an, unterstützt Ihr Prozessor die SSE2-Erweiterung. Details zur Einteilung von Intel-Prozessoren nach Familie und Modell finden Sie auch in der Wikipedia [4].

Das Skript benutzt für die Installation sudo und funktioniert somit unter Suse und Ubuntu ohne weitere Änderungen. Benutzer anderer Distributionen ändern über visudo die Sudoers-Datei: Über die beiden Zeilen

Defaults targetpw
ALL ALL=(ALL) ALL

kann jeder Benutzer über die Eingabe des Root-Passwortes administrative Aufgaben vornehmen.

In den Tests auf einem Pentium-M-System brachte die mit den Parametern CFLAGS=""-march=pentium-m -mfpmath=sse2 -O3" selbst kompilierte Version von libogg, libvorbis und der vorbis-tools allerdings keine nennenswerten Geschwindigkeitsvorteile. Auch ein Test, die gesamte Suite mit dem Intel-C-Compiler icc zu übersetzen sorgte eher für Ernüchterung: Für die Referenzdatei benötigte das mit dem Intel-Compiler übersetzte oggenc auf einem 1,4 GHz schnellen Pentium M rund 30 Sekunden. Die mit GCC 4.1 übersetzte Standardversion von Suse benötigte für dieselbe Aufgabe nur 20 Sekunden.

Schnell, schneller

Wer vor hat, eine größere Menge an CDs ins MP3- oder OGG-Format umzuwandeln, sollte sich nach einem Rechner mit 64-Bit-Prozessor umschauen. Egal welche Version von oggenc oder lame Sie benutzen: Mit einem 64-Bit-Betriebssystem dauert das Encoding rund halb so lange, wie auf einem 32-Bit-System (Abbildung 1). So braucht oggenc auf einem 1,6 GHz schnellen 32-Bit-Rechner mit Core-Duo-Prozessor 19 Sekunden, um "Goldeneye" aus einer WAV-Datei nach OGG-Vorbis umzuwandeln. Die gleiche Aufgabe erledigt der Encoder auf einem 2,2 GHz schnellen AMD-Athlon mit der 64-Bit-Version von Open Suse 10.2 in nur 10,5 Sekunden.

Details zu den Tests entnehmen Sie dem Kasten "So haben wir getestet". Die Test zeigen zugleich, welches Potential durch den nicht optimierten Code verschenkt wird. So arbeitet oggenc auf einer Dualcore-CPU von Intel nicht schneller als auf einem gleich getakteten Pentium-M-Prozessor. Die zweite CPU schläft quasi während des Encodings. Allein die Lancer-Version nutzt beide Kerne. Sie arbeitet auf einem Core Duo doppelt so schnell, als auf einem Single-Core-Prozessor.

Abbildung 1: Drei OGG-Vorbis-Encoder im Vergleich: Der Lancer-Fork arbeitet deutlich schneller als die auf hohe Qualität getrimmte Aotuv-Version. Die Standard-Version von oggenc ist teilweise um den Faktor 4 langsamer.

Sehr gut schneidet Linux im direkten Vergleich mit Windows ab (Abbildung 2). Sämtliche Encoder arbeiten unter Linux deutlich schneller als mit Windows XP.

Abbildung 2: 4:0 für Linux: Sowohl lame als auch alle drei oggenc-Varianten arbeitet unter Windows deutlich langsamer.

So haben wir getestet

Als Testsong benutzten wir Track 9 ("Goldeneye") aus dem Album "Wildest Dreams" von Tina Turner. Die Größe der mit cdparanoia gerippten WAV-Datei beträgt 34,8 MByte (36632444 Byte). Als Betriebssystem kam Open Suse 10.2 zum Einsatz (auf 64-Bit-Rechnern in der 64-Bit-Version).

Oggenc (Standard) entspricht jeweils der von Suse kompilierten oggenc-Version. Die Aotuv-Version kompilierten wir selbst, ohne spezielle GCC-Parameter. Von lame verwendeten wir Version 3.97. Da es von Lancer keine Linux-Version gibt, setzten wir den Encoder mit Wine zusammen ein.

Die Vergleichstest zwischen Windows und Linux fanden auf einem IBM-Thinkpad mit einem 1,6 GHz schnellen Intel-Core-Duo-Prozessor statt (T2300). Als Betriebssystem benutzten wir Windows XP mit Service Pack 2 und Open Suse 10.2. Für sämtliche Tests starteten wir oggenc und lame von der Kommandozeile aus ohne zusätzliche Parameter.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Audio-Formate konvertieren
    Die Kommandozeile rockt – in dieser "Zu-Befehl"-Folge zeigen wir, wie Sie Audio-CDs auslesen und die Sound-Dateien in andere Formate umwandeln. Ob Wav, MP3 oder Ogg Vorbis: Auf der Shell konvertieren Sie mit wenigen Handgriffen.
  • Musik-Metadaten in der Shell bearbeiten
    Die meisten Audioplayer präsentieren bei der Wiedergabe Künstler und Albumtitel, den Songnamen und vieles mehr. Diese Metadaten sind in den Dateien enthalten. Wie Sie die Informationen mit Shell-Kommandos auslesen, ändern und löschen, zeigen wir Ihnen auf den folgenden Seiten.
  • Im Dutzend schneller
    Viele Vorgänge bei der Arbeit mit Audiodateien erledigen Sie über die Konsole schneller, als mit grafischen Programmen. Der Artikel zeigt Ihnen, welche Tools Sie wofür benutzen.
  • Kommandozeilen-Encoder
    Audio-CDs auslesen, die Sound-Dateien ins MP3- oder Ogg-Vorbis-Format umwandeln und die Dateien dabei direkt mit ID3-Tags versehen: Das alles erledigt "abcde" auf der Kommandozeile in einem Rutsch.
Kommentare

Infos zur Publikation

title_2014_10

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...