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.

Mehr als 15.000 Zeilen C haben Amos Wenger und Jens Nockert, unterstützt von Matthias Georgi und Antoine Marguerie, per Hand übersetzt, um die libmad auf Javascript zu portieren. Begonnen wurde das Projekt Ende Mai beim Music Hackday in Berlin.
Vor allem das Debugging sei eine große Herausforderung gewesen, schreibt Wenger, 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/ 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. 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.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Dann wären die paar % bei Winamp aber auch sehr viel mehr als üblich.
"Ihre Bibliothek basiert auf der libmad und ermöglicht es, Firefox-MP3-Dateien ohne...
JavaScript ist eine Turing-vollständige Sprache. Einen MP3-Decoder konnte man auch vor 10...
Vielleicht variable Bitrate?
Mhm du schon