Zum Hauptinhalt Zur Navigation

jsmad: MP3-Decoder in Javascript

Amos Wenger und Jens Nockert haben mit jsmad einen rein in Javascript geschriebenen MP3-Decoder veröffentlicht. Ihre Bibliothek basiert auf der libmad und ermöglicht es, Firefox-MP3-Dateien ohne Plugins abzuspielen.
/ Jens Ihlenfeld
42 Kommentare News folgen (öffnet im neuen Fenster)
jsmad: MP3-Decoder in Javascript (Bild: jsmad)
jsmad: MP3-Decoder in Javascript Bild: jsmad

Mehr als 15.000 Zeilen C haben Amos Wenger(öffnet im neuen Fenster) und Jens Nockert(öffnet im neuen Fenster) , unterstützt von Matthias Georgi(öffnet im neuen Fenster) und Antoine Marguerie(öffnet im neuen Fenster) , per Hand übersetzt, um die libmad(öffnet im neuen Fenster) auf Javascript zu portieren. Begonnen wurde das Projekt Ende Mai beim Music Hackday in Berlin(öffnet im neuen Fenster) .

Vor allem das Debugging sei eine große Herausforderung gewesen, schreibt Wenger(öffnet im neuen Fenster) , denn ein einfacher Vergleich der Outputs hätte ebenso wenig funktioniert, wie der Ausgabe zu lauschen: "Versuch zu debuggen, wenn alles, was du hast, der Unterschied zwischen SCRRRCHHHHHH und CRRRRRRKKKKKK ist." Letztendlich erstellen sie aus dem Output Graphen mit gnuplot, um zu erkennen, was falsch lief.

Die jsmad-Entwickler haben unter jsmad.org/(öffnet im neuen Fenster) eine Demo veröffentlicht, die in Firefox 4 läuft. Der Browser ist schnell genug, um MP3-Dateien in Echtzeit zu decodieren. Dabei spiele die Bitrate keine große Rolle, erklärt Wenger, auch Dateien mit 320 KBit/s laufen problemlos. In Chrome läuft jsmad derzeit nicht. Der Grund dafür wird noch gesucht, denn eigentlich sollte jsmad auch in Chrome funktionieren.

Nun hoffen die Entwickler auf Feedback von Browserherstellern, denn für diese sei jsmad sicher ein interessanter Benchmark.

Jsmad ist Open Source und steht unter der GPLv2. Der Code findet sich bei Github(öffnet im neuen Fenster) . Zwar sind sich die Entwickler nicht ganz darüber im Klaren, was es bedeutet, eine Javascript-Bibliothek unter die GPLv2 zu stellen, da sie auf der libmad aufsetzen, gab es aber keine Alternative.


Relevante Themen