Ein interessanter Fall dieser Woche. Jemand hat einen Song gemacht, der bei Spotify veröffentlich werden soll. Das Master davon liegt aber nur als MP3 vor.
So konvertiert man MP3 zu WAV für Spotify
Spotify benötigt für eine Veröffentlichung ein „Master“ File mit sehr spezifischen Format-Daten:
- Sampel-Size: 16bit (Sample size)
Die „sample size“ bestimmt den maximalen Dynamikbereich eines digitalisierten Tons; umfasst also die ‚Größe der Zahl‘ des Verhältnisses zwischen der höchsten und niedrigsten Amplitude. Ist praktisch das bestimmende Qualitätsmerkmal bei PCM (WAV-Dateien).
- Sample Rate: 44.1kHz (Abtastrate)
Die „Abtastrate“ ist die Frequenz, in der die „Höhe der Welle“ eines Tons pro Sekunde gemessen wird. Also wie oft die Musik „abgetastet“ wird. Höhere Frequenz = mehr Messwerte = größere Datei.
- 1411kbps (bit rate)
Die Bitrate oder auch „Sample Rate“ ist die Datenmenge pro Sekunde, bestimmt also letztendlich die Dateigröße. Bei MP3 kann diese innerhalb einer Datei variieren (variable Bitrate), bei WAVs gibt es meist einen statischen Wert. Bestimmt indirekt die Qualität, denn wen man weniger Bits für Informationen hat, muss man ja etwas weglassen.
Diese drei Werte hängen, was die Qulität angeht, natürlich letztendlich zusammen. Es gilt die einfache Formel: bit rate = sample rate x bit depth. Konsequenterweise folgt daraus auch: bit rate x dauer = file size.
Die von Spotify angegebenen Werte entsprechen einem heute üblichen digitalen Master in sehr guter Qualität. Ein MP3 ist (in der Regel) bereits mit Verlusten komprimiert, enthält also nicht mehr alle Informationen des Originals. In diesem Fall musste aber aus dem „eigentlich“ schlechteren MP3 das „gute“ Master zurückgerechnet werden. Technisch ist das kein Problem, aber der die „fehlenden“ Informationen, die beim Erstellen des MP3 entfernt wurden, kommen natürlich nicht zurück.
Lösung
Mit dem Universalwerkzeug ffmpeg ist das problemlos möglich:
ffmpeg -i '<INPUT>.mp3' -ar 44100 -sample_fmt s16 -minrate 1411k <OUTPUT>.wav
In seine Bestandteile zerlegt:
- „-ar 44100“ aus
-ar[:stream_specifier] freq (input/output,per-stream)
Setzt die Audio-Abtastfrequenz des Codec. Für Ausgabestreams wird sie standardmäßig auf die Frequenz des entsprechenden Eingabestreams eingestellt, hier wollen wir 44,1khz erzwingen.
- „-sample_fmt s16“ aus
-sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
Legt das Audio-Sample-Format fest, hier 16bit. Eine Liste der Möglichkeiten bekommt man mit -sample_fmts
- -minrate 1411k aus
-minrate [min/max]
Die minimale Bitratentoleranz (in Bits/s mit Multiplikator), hier statisch bei 141,1kbps.