Eins der schönsten Features von HTML5 könnten die Audio- und Videoelemente sein. Mit <audio>
und <video>
ist es kinderleicht Ton und Bewegtbild in Webseiten einzubetten und die sehr durchdachte API lädt zum Programmieren eigener Player-Interfaces geradezu ein. Leider gibt es das Codec-Problem: kein einziger Audio- oder Videocodec wird von allen Browsern unterstützt. Die beteiligten Parteien (die Browserhersteller) haben auch sehr gute Gründe – wirtschaftliche Gründe – sich dem jeweiligen Feindes-Codec zu verweigern und es ist nicht wirklich abzusehen, wo in nächster Zeit eine Einigung unter den Browserherstellern herkommen soll. Fakt ist also: <audio>
und <video>
sind bis auf weiteres praktisch unbrauchbar.
Weil ich zum Glück keinen Browserhersteller gehöre, sondern unabhängiger HTML5-Erklärbär bin, darf ich das am Ende eines Workshops auch immer so offen formulieren. Meine Vorschläge für den Umgang mit dieser Situation sind immer die gleichen: entweder weiterhin das bewärhte Flash benutzen oder den fehlenden Codec in JavaScript nachbauen. Letzteres wird dabei meist nicht ganz ernst genommen, aber wenn es Dinge wie einen in JS geschriebenen PC-Emulator gibt, sehe ich nicht ein, dass es nicht Möglich sein soll, seinen eigenen Decoder im Browser zu programmieren. Dank Audio Data API und <canvas>
ist es schließlich möglich, jedwede Ton- oder Bildinformation in einem modernen Browser abzubilden – es müsste halt nur mal jemand wagen.
Und nun hat es endlich mal jemand gewagt: JSmad ist das Script, das dem Firefox 4 MP3-Support beibringt. Das Projekt ist noch recht jung und es hat so seine Performance-Probleme, aber in diesem Fall zählt wirklich vor allem erst mal der Grundgedanke: es gibt keinen Grund, sich HTML5 von den Browserherstellern kaputt machen zu lassen! Sie geben uns ein kaputtes DOM und wir werfen so lange jQuery darauf, bis es funktioniert. Sie liefern uns keine Codecs, wir bauen sie. Das ist genau die richtige Einstellung für ein entspannt-produktives Verhältnis zu HTML5 – denn von Klagen und Jammern allein wird es nicht besser.
Langfristig gesehen wäre es vermutlich rechtlich unbedenklicher, die freien Codecs für die proprietären Browser nachzubauen statt wie im Fall von JSmad umgekehrt. Dazu müssten sich Safari und Internet Explorer zwar erst mal die Audio Data API zulegen, aber auch dieser Tag kann so fern nicht sein. Das wird schon.
Kommentare (13)
Robert Agthe ¶
20. Juni 2011, 08:43 Uhr
Nette Sache. Und wie schon oft gesagt, Javascript wird immer mehr zu Java und der Browser zur VM.
Axel ¶
20. Juni 2011, 12:19 Uhr
Ich glaube kaum, das Canvas dazu geeignet ist einen Video-Stream abzuspielen.
Mal ganz abgesehen davon, das für moderne Video-Codecs dann JavaScript wohl doch zu langsam ist ;)
Markus ¶
20. Juni 2011, 12:52 Uhr
Canvas kann mit Leichtigkeit Video-Daten abspielen (+ diese auch manipulieren).
Siehe: http://html5doctor.com/video-canvas-magic/
Peter ¶
20. Juni 2011, 13:57 Uhr
Zitat Axel:
Doch, doch, das ist einfach machbar und läuft auch ganz flüssig. Man muss sich nur ein paar Gedanken um die Performance machen und/oder die Browser müssen etwas schneller werden.
Dann warten wir halt noch ein halbes Jahr bis es schnell genug ist.
fwolf ¶
20. Juni 2011, 18:38 Uhr
Genau DAS habe ich mir gerade auch gedacht: Warum MPEG-2 Audio Layer 3 nachbauen, wenn es doch offene Formate wie etwa Ogg Vorbis gibt?
cu, w0lf.
Peter ¶
20. Juni 2011, 18:53 Uhr
Schätze mal weil sich entweder/oder
a) jenseits der Nerd-Kreise Vorbis nicht gar so sehr geschätzt ist
b) sich libmad zum portieren angeboten hat
c) die Ziel-Browser (Firefox und Chrome) eh schon nativ Vorbis können - da wäre ein JS-Codec ohne soooo großen Mehrwert
Für Techdemo-Zwecke ist MP3 meiner Meinung nach schon ok.
erlehmann ¶
21. Juni 2011, 10:41 Uhr
Nicht
, auch einfach weniger bekannt außerhalb des Zirkels von Webworkern, (die um den Browserkrieg wissen) und (Spiele-)Entwicklern (die Lizenzgebühren fürchten). Die Mehrzahl der mir bekannten Podcaster lebt z.B. zum Teil in einer Art Apple-Blase – kein Wunder, wenn iTunes genau einen Weg einfach macht, Dinge zu tun und die Apple-Geräte gerade das Format nicht abspielen, das problemlos interoperabel wäre.Vom Marktanteil her können die Mehrzahl der Browser schon Vorbis, schuld daran sind maßgeblich Firefox und Chrome. Auch von diesem Standpunkt her wäre ein Vorbis-Dekoder etwas unspektakulär gewesen.
Chris ¶
22. Juni 2011, 13:29 Uhr
wofür brauchen wir dann noch die Browserhersteller wenn sie nicht in der Lage sind etwas richtig zu machen? Bzw. wenn alles was sie machen nur halb funktioniert.
non ¶
23. Juni 2011, 20:26 Uhr
Hoffentlich bleibe ich als Nutzer von solchem Unsinn verschont...
Peter ¶
23. Juni 2011, 20:57 Uhr
Kein Audio > gehacktes Audio?
Chris ¶
24. Juni 2011, 05:30 Uhr
Zitat Peter:
das mag schon toll so sein, dass wir als Webentwickler soetwas nachbauen / selbst bauen, aber ist das der Sinn der Sache? Ein Browserhersteller sollte seine Pflicht nachkommen und Standards sowie Spezifikationen unterstützen. Ich kaufe ja auch kein Auto ohne Hupe und bau dann selbst die Hupe ein. Die Browserhersteller haben zuviele Freiheiten.
Peter ¶
24. Juni 2011, 06:52 Uhr
Zitat Chris:
Tun sie in diesem Fall ja. Die Spezifikationen schreiben keine Codecs vor.
Doch, das machst du. Diese Hupe heißt jQuery und alle finden sie ganz toll. Wobei das weniger eine Hupe (ohne die wäre das Auto ja noch fahrbar) als ein Getriebe ist. Ohne solche Tools ist DOM-Manipulation ebenso unmöglich wie das Abspielen einer MP3-Datei im Firefox ohne jsmad.
non ¶
26. Juni 2011, 17:19 Uhr
Ja, Kein Audio ist besser als Audio, dass meinen Rechner lahmlegt, denn es gibt Leute die machen mehr als nur in einem Fenster und in einem Tab zu surfen...
Aber dank dem hervorragenden Stück Software, dass auf den Namen NoScript hört (das wichtigste Plugin in einem Browser überhaupt), wird mich das höchst wahrscheinlich auch nicht weiter stören.