2383 mal gelesen
In den Ferien kümmere ich mich gerne um meine Musiksammlung, und da das Christkind auch neue CDs unter den Baum gelegt hat, stellt sich mal wieder die Frage: Wie habe ich auch noch in vielen Jahren oder Jahrzehnten Freude an der Musik? Wie soll ich sie am besten digital aufbewahren? (Für die Ungeduldigen: Das Fazit findet sich natürlich am Ende der Seite! 😉 )
Ich versuche also analytisch an die Sache heranzugehen. Testen möchte ich mit „Shot in the Dark“ von AC/DC. Ich erstelle mir mit Exact Audio Copy eine WAV-Datei des Tracks von CD – diese WAV-Datei ist das Ausgangsmaterial für alle Tests, die ich durchführe, denn es geht hier ja nicht um die Qualität des Rippens oder des CD-Laufwerks, sondern nur darum, was MP3-Codierer mit demselben Ausgangsmaterial anrichten. Die Original-Wave-Datei hat eine Größe von 31.893 kb.
Zum Testen gehe ich nach dieser Anleitung https://forum.audacityteam.org/viewtopic.php?t=82354 vor. Ich importiere zweimal die Original-WAV-Datei in Audacity, invertiere einen der beiden Tracks (Effekt – invertieren) , wähle dann beide aus und mische sie zusammen (Spuren – Mix – Mischen und rendern). Wie zu erwarten erhalte ich eine perfekte Null-Linie: Zwei gegengleiche Wellenlinien heben sich komplett auf. Um das zu überprüfen, hebe ich die Lautstärke der Waveform extrem an (STRG + A, Effekt, Lautheit-Normalisierung, Effektivwert, 0 dB). Das Ergebnis ist wenig überraschend: Null bleibt auch nach einer Multiplikation null – eine flache Linie.
Um mir Arbeit zu sparen, exportiere ich die invertierte Waveform als Track. Große Überraschung beim wiederholten Vergleichstest: Mische ich die Originaldatei mit der invertiert gespeicherten zweite WAV-Datei, sind kleine Unregelmäßigkeiten zu erkennen:
Und wenn man diese auf 0 dB normalisiert, entsteht ein deutlich hörbares Rauschen!
Nachdem ich die Testbedingungen auf diese Weise überprüft habe, kommen wir nun zu den Codecs:
Ich gehe dem Fehler auf den Grund: Auch Wave-Dateien haben Encodierungen, und die beim ersten Versuch gewählte (signed 16 bit) stimmte nicht mit der Originalcodierung (32-bit float) überein.
Also noch einmal mit richtiger Codierung. Obwohl im zweiten Versuch nach dem Normalisieren immer noch Artefakte auf der Wellenlinie sichtbar sind, sind diese nicht hörbar.
Nachdem die Testbedingungen feststehen, kommen wir nun also zur Encodierung in komprimierte Formate:
Als das Non-Plus-Ultra der Musikarchivierung gilt der FLAC-Codec, den ich als Referenzwert zuerst testen möchte. Als Oberfläche dient mir dafür Exact Audio Copy. Den Encoder in der Version 1.3.3 hole ich mir von https://www.rarewares.org/files/lossless/flac-1.3.3.git-ce6dd6b5-x64.zip – die Einstellungen dafür übernehme ich aus einem Tutorial ( https://www.audiohq.de/viewtopic.php?id=47#FLAC ):
Die Kommandozeilenoptionen lauten:
-5 -T "ALBUM=%albumtitle%" -T "ALBUMARTIST=%albumartist%" -T "DATE=%year%" -T "GENRE=%genre%" -T "COMMENT=%comment%" -T "DISCTOTAL=%totalcds%" -T "DISCNUMBER=%cdnumber%" -T "TRACKTOTAL=%numtracks%" -T "TRACKNUMBER=%tracknr%" -T "TITLE=%title%" -T "ARTIST=%artist%" -T "COMPOSER=%composer%" %haslyrics%--tag-from-file=LYRICS="%lyricsfile%"%haslyrics% %hascover%--picture="%coverfile%"%hascover% %source% -o %dest%
Die resultierende FLAC-Datei ist 23.972 kb groß und akustisch auch nach einer Normalisierung auf 0 dB zu 100% identisch mit der WAV-Datei, wie die Analyse der gemixten Differenz-Datei zeigt:
Ein verblüffend gutes Ergebnis, denn FLAC komprimiert mit 24,8% Ersparnis an Speicherplatz (verglichen mit der WAV-Datei) auch noch deutlich besser als die Archivformate ZIP (3,2%) und RAR (15,6%). Zudem kann die Datei sofort wieder abgespielt werden – ein tolles Ergebnis!
Es gibt dabei nur zwei Probleme: Erstens sind die Dateien immer noch groß, wenn man sie auf Smartphones, iPods oder anderen MP3-Playern dabeihaben möchte. Und zweitens können viele Geräte wie z. B. Autoradios nichts mit dem Dateiformat anfangen.
Zu Archivierungszwecken ist FLAC sicher eine tolle Sache, doch für die praktische Anwendung sollten auch noch quasi universell einsetzbare MP3-Dateien erstellt werden – und darum soll es hier vorrangig gehen.
Nun also zum MP3-Encoder: Ich konfiguriere EAC nun auf LAME-Encoder 3.100-64-20200409, den ich von https://www.rarewares.org/files/mp3/lame3.100-64-20200409.zip heruntergeladen habe.
Die in EAC vorgeschlagenen Encoder-Einstellungen übernehme ich zunächst einmal:
Die Kommandozeile für Versuch 1 lautet: %islow%-V 5%islow%%ishigh%-V 2%ishigh% –vbr-new %source% %dest%
Das Ergebnis ist eine Datei mit 4.268 kb; die (durchschnittliche) Bitrate wird mit 188 kbit/s angegeben.
Nach Invertierung und Mix der Tracks, und noch vor der Normalisierung wird deutlich, dass klare Unterschiede vorhanden sind:
Wie hört sich diese Differenz an? Zunächst einmal wie ein Rauschen, aber deutlich erkennbar sind Schlagzeug und Gesang – den Liedtext kann man recht deutlich verstehen. Unter Analyse – Spektrum zeichnen werden Peak-Werte von -42 dB ausgegeben, und zwar über den gesamten hörbaren Frequenzbereich verteilt:
Für den zweiten Versuch verwende ich CBR 320, also die höchstmögliche konstante Bitrate von 320 kbps
Die Kommandozeile für Versuch 2 lautet: -b 320 %source% %dest%
Die MP3-Datei hat nun 7.235 kb, also etwa zwei Drittel größer als Versuch 1. Das scheint sich auszuzahlen: Auch hier sind Differenzen zum Original zu erkennen, aber sie fallen deutlich geringer aus; oben CBR 320, unten VBR mit Parameter -V 2 (= 188 kbit/s):
Wieder fällt vor allem das Schlagzeug auf, insbesondere die hochtönigen Crash-Becken und die Basedrum. Der Gesang ist aber nur noch mit viel Phantasie als solcher erkennbar.
Nun also zu Versuch 3 – Variable Bitrate mit bester Qualität. Wieder stelle ich den Encoder ein; die Kommandozeile lautet nun: -V 0 %source% %dest%
Das Ergebnis liegt recht nahe an CBR, kann der konstanten Bitrate aber nicht ganz das Wasser reichen:
Hier also der abschließende optische Vergleich der Differenzen in den MP3-Encodierungen, dargestellt in der Reihenfolge der Tests: Oben VBR 188 kbit/s, in der Mitte CBR 320, unten VBR 259 kbit/s – je kleiner die Welle, desto geringer die Abweichung vom Original.
Doch was bedeuten diese Ergebnisse in der Praxis? Im HydrogenAudio-Wiki steht: Maximum quality is achieved when, regardless of listening conditions, you are unable to detect a difference between the MP3 and the original. As demonstrated by blind ABX tests, LAME-encoded MP3s typically achieve this level of transparency when encoded with the default settings, at bitrates well below maximum. Encoding with higher-bitrate settings will have no effect on the perceived quality.
( https://wiki.hydrogenaud.io/index.php/LAME#Recommended_encoder_settings )
Kurz gesagt, die von mir künstlich herausgerechneten Unterschiede sind in der Praxis selbst bei sehr teurem Hifi-Equipment nicht mehr wahrnehmbar. Auffällig wird es erst bei geringen Bitraten; der Vollständigkeit halber habe ich auch noch eine Codierung mit nur 64 kbit/s CBR vorgenommen, und das Differenz-Spektrum fällt deutlich lauter aus:
Auch akustisch fällt in der MP3-Datei ein deutliches Klirren des Schlagzeugs auf, auch die anderen Töne klingen unschön verwaschen.
Fazit: Wer eine Bit für Bit qualitativ perfekte Musiksammlung wünscht, kommt um FLAC als Archivformat nicht herum. Gegebenenfalls müssen von den FLAC-Dateien auch noch MP3-Versionen für FLAC-inkompatible Geräte erstellt werden. FLAC-Dateien nehmen ca. 3,3 mal mehr Speicherplatz in Anspruch als MP3-Dateien in der höchstmöglichen Qualität CBR 320.
Der Vorteil eines FLAC-Archivs ist, dass es beliebig oft verlustfrei in andere Formate konvertiert werden kann – also extrem zukunftssicher ist.
Ein Problem kann dabei werden, dass Musikbibliotheken wie iTunes mit dem FLAC-Format nicht umgehen können. Bewertet man seine Musik, erstellt Playlisten etc., hat man früher oder später eine doppelte Buchführung. Es gibt sicher Programme, die hier helfen können, doch da habe ich mich noch nicht eingelesen.
Wer seine Musik nur als MP3 aufbewahrt, wird in der Praxis keinen Unterschied hören. Dafür muss man jedoch zumindest die bestmögliche variable Bitrate (VBR 0) wählen und zur Codierung den LAME-Encoder nutzen, der allgemein als der qualitativ beste gilt. Eine Codierung in konstanter Bitrate mit höchstmöglicher Datenrate (CBR 320) garantiert die geringsten Verluste, nimmt aber ca. 25% mehr Speicherplatz in Anspruch.