Der heilige Gral des Webvideo

(Originalartikel vom 30. Juni 2008)

Zunächst müssen wir uns darüber klar werden, was genau gemeint ist, wenn wir von »Video im Web« reden. Streng genommen handelt es sich ja um zwei Hauptkomponenten, die in Einklang zu bringen sind: Videoformat und Player. Waren diese Anfangs noch fest aneinander gekoppelt, sehen wir später, dass ein und dieselbe Videodatei durchaus auch mit unterschiedlicher Software (oder auch Hardware) abgespielt werden kann.

Darüber hinaus unterscheide ich in diesem Essay – der Einfachheit halber – nicht zwischen Progressive Download und Streaming. Letztlich muss der heilige Gral eine einfach zu beherrschende Technik sein, um fertige Videodateien auf Websites so einzubinden, dass sie auf allen Systemen unproblematisch abgespielt und idealerweise auch heruntergeladen werden können.

Mittelalter: Die proprietäre Dreifaltigkeit

Keine schöne Sache war das anno 1997, wenn man sich ein Videofilmchen im Web angucken wollte. »Gigantische Auflösungen« von 320×240 Pixeln bei 15 Bildern pro Sekunde kannte man nur von Multimedia-CD-ROMs, denn deren Übertragungsrate von 1.200kbps war unerreichbar im Netz: Meist war man über ein Analog-Modem mit nur maximal 56kbps und natürlich in Briefmarkengröße unterwegs – keine besonders gute Ausgangsposition!

Dennoch entwickelten sich in dieser Zeit drei konkurrierende Videotechnologien, mit denen es möglich war, im Netz Pornofilme Kinotrailer anzugucken: RealPlayer, WindowsMedia (a.k.a. Video for Windows) und QuickTime. Selbstverständlich waren die drei Formate untereinander inkompatibel. Und ebenso selbstverständlich gab es keinen klaren Marktführer, was die Verbreitung der Browser-Plugins bei den Endanwendern anging: Windows-Nutzer hassten (wie heute) QuickTime, Microsoft bot (wie heute) keine aktuellen Player und Codecs für das MacOS an, und der RealPlayer wurde von vielen wegen massiver Datenschutzprobleme und aufdringlicher Marketing-Maßnahmen abgelehnt.

Daraus resultierend musste man als Anbieter alle seine Videos in drei verschiedenen Formaten bereit stellen. Dazu kam, dass es neben den armen Modem-Nutzern auch privilegierte Menschen mit schnellen Uni-Zugängen gab, denen man dann schon mal eine zusätzliche 300kbps-Version gönnen konnte. Und schnell war man bei der klassischen Anzahl von insgesamt 6 unterschiedlichen Versionen eines einzigen Videos, die es zu codieren, hosten und anzubieten galt.

Historische Überreste aus dieser Zeit kann man bisweilen noch in den Mediatheken der großen Fernsehanstalten finden, wo bis vor einigen Monaten sogar noch RealPlayer-Filmchen zu sehen waren. Gruselig!

Wirtschaftwunder: Flash-Video, der Quereinsteiger

Anfangs wurden sie noch belächelt, die Videofähigkeiten von Flash MX aus dem Jahr 2002. Bisher hatte man gedacht, das Animationsplugin von Macromedia wäre auf Vektorgrafiken ausgelegt und würde sich auf Fotografenwebsites und blinkende Werbebanner beschränken. Einige Jahre lang nutzte auch kaum ein Entwickler die Sache mit den Videos – zu ineffizient und ressourcenfressend war der einzige zur Verfügung stehende Videocodec H.263, der hier unter dem Namen Sorensen Spark vermarktet wurde.

Doch das änderte sich schlagartig im Februar 2005, als YouTube an den Start ging und konsequent mit Flash-Videos operierte statt auf eines der drei vermeintlich etablierten Formate zu setzen. Denn Chad Hurley und seine Mitstreiter wussten: Wahrhaft etabliert unter den Videotechnologien ist eigentlich nur Flash – obwohl es allgemein gar nicht als Videotechnologie angesehen wurde. Doch eine Plugin-Penetration von weit über 90 Prozent und die Möglichkeit, die Player-GUI komplett nach eigenen Maßstäben zu gestalten, machten es klar: Flash-Video ist das nächste große Ding, und reihenweise wurde das Konzept von Nachahmer-Plattformen übernommen.

Seit 2002 hat sich bei Flash technisch viel getan: Mitte 2005 erschien Flash 8 mit einem zusätzlichen, deutlich besseren Videocodec (On2 VP6), und viele alternative Videoplattformen wie Sevenload oder Vimeo lieferten sich mit YouTube einen Kampf um die beste Umsetzung der Flash-Videotechnologie. Das schöne daran: Das benötigte Plugin ließ sich stets in ein paar Sekunden herunterladen und unaufdringlich im Browser installieren – ganz im Gegensatz zu früheren RealPlayer-Installationsorgien, an die man sich nur ungern erinnert.

Doch der große Nachteil an Flash-Videos soll natürlich nicht verschwiegen werden: Sie waren in aller Regel nicht zum Herunterladen und Archivieren gedacht, sondern nur zum Abspielen im Browserfenster. Das war kein grundsätzlich technisches Problem. Aber es hatte sich so ergeben, dass sowohl die gängigen Abspielprogramme auf dem Rechner als auch Hardware-Plattformen wie iPod oder Multimedia-Konsolen vom VP6-Codec gar nichts wissen wollten. Hier agierte man jahrelang entweder mit einem der proprietären Formaten aus dem Mittelalter oder mit verbesserten Standards wie DivX/MPEG-4 oder H.264. Diese waren technisch zwar weitaus überlegen, konnten aber eben meist nicht direkt im Browser abgespielt werden.

Was blieb also dem Anbieter von Inhalten übrig? Richtig: Er musste wieder mehrgleisig fahren, wenn er seine Inhalte möglichst zugänglich verteilen wollte: Eine Version im Flashformat (Spark- oder VP6-Codec) zum direkten Betrachten im Browser, und eine Download-Version in einem ISO-standardisierten MPEG-4-Format (vornehmlich mit dem überragenden H.264-Codec), das man nicht nur per VLC oder QuickTime-Player, sondern auch auf der PSP oder der XBOX zum Laufen bekam.

Neuzeit: Ein Format, sie alle zu knechten

Die Neuzeit beginnt in unserem Falle am 3. Dezember 2007. Software-Riese Adobe, inzwischen im Besitz der Flash-Technologie, bringt das Flashplayer-Plugin 9.0.115.0 unter die Leute. Diese Version beherrscht erstmals das Abspielen von normalen H.264-Videos. Zum Anbieten von Videoinhalten im Web benötigt man seitdem nur noch dieses eine Videoformat. Das Abspielen auf der Website übernimmt ein simples flashbasiertes Playermodul wie der populäre JW Player oder die Open-Source-Alternative Flowplayer. Und ein Link zum direkten Download des Videos ist auch schnell hinzugefügt. Ganz nebenbei stellte H.264 damals wie heute die Spitze der Evolution dar, was die Qualität von marktreifen Videocodecs angeht.

Doch die Freude über H.264-kompatibles Flash währte nicht lange, denn am Horizont erschienen schon wieder neue Probleme, und diese führen uns schnurstracks in die Gegenwart.

Gegenwart: Flash-Abschied auf Raten

Dieser Tage stellt sich sehr deutlich heraus, dass immer mehr Internetnutzung auf mobilen Geräten passiert. Diese jedoch sind nach derzeitigem Stand der Wissenschaft nicht sonderlich gut für den Einsatz von Flash geeignet. Es gibt noch keinen überzeugenden Prototypen für ein leistungsschonendes, vollwertiges Flash-Plugin unter den populären mobilen Plattformen Android, Blackberry, iPhone oder Windows Mobile. Manche sagen, dass es das auch nie geben wird, und Apple macht mehr als klar, dass dies zumindest für iPod, iPhone und iPad zu 100 Prozent zutrifft.

Außerdem sind mit dem kommenden HTML5-Standard in Kürze viele der modernen Browser in der Lage, Videos auch ganz ohne (Flash-)Plugin abzuspielen. Das ist insofern hilfreich, als dass eine native Video-Unterstützung vor allem auf dem Mac viel weniger Leistung verbraucht als eine flashbasierte Player-Lösung. Problematisch ist bei HTML5-Video hingegen, dass die Spezifikation kein bestimmtes Videoformat vorsieht, sondern diese Entscheidung den Browserherstellern überlässt. Und nun gibt es wieder zwei Formate, die miteinander um die höchste Verbreitung kämpfen! So setzte das eine Lager der Browserhersteller auf das bekannte und bewährte H.264-Format (Safari, IE9), während die anderen den quelloffenen und freien Codec Theora unterstützen (Firefox, Opera). Lediglich Google Chrome gibt beides wieder. Die Vor- und Nachteile der jeweiligen Codecs sind zwar spitzfindig, aber enorm wichtig für die Zukunft von Webvideos:

H.264 besitzt überlegene Qualität auch bei geringen Bandbreiten – es ist der qualitativ bessere Codec. Darüber hinaus kann er nicht nur von allen modernen Betriebssystemen per Software abgespielt werden, sondern auch mit Hardwarebeschleunigung. Es gibt hierfür entsprechende Chips, die auf das Dekodieren von H.264 spezialisiert sind und dabei eine Menge Strom sparen – gut für mobile Geräte! Doch der Preis für diese Annehmlichkeiten ist hoch: H.264 kostet Geld, und zwar an mehreren Stellen: Zum einen müssen Anbieter von Encoder- und Player-Software Lizenzkosten zahlen, die sie natürlich letztlich an die Nutzer weiterleiten. Zum anderen muss jeder Video-Publizist Gebühren an das MPEG-Konsortium zahlen, sofern er seine Inhalte gegen Geld anbietet. (Die drohenden Lizenzkosten auch für kostenlose Videoverbreitung wurde inzwischen abgeschafft, siehe unten.)

Auf der anderen Seite steht der freie Videocodec Theora bereit, der vor einigen Jahren von der Firma On2 gespendet wurde und seither von der Open-Source-Gemeinde weitergepflegt wird. Theora besitzt eine ordentliche Qualität und spielt durchaus in der gleichen Liga wie H.264, kann aber nicht komplett mithalten. Der große Vorteil: Keinerlei Lizenzkosten für gar nichts! Zwei große Nachteile: Zum einen gibt es (noch) keine dedizierte Hardware für Theora; Das riesige Performance- und Stromsparpotenzial für mobile Geräte fällt komplett weg und disqualifiziert den Codec damit fast schon für den längeren Einsatz auf Smartphones. Zum anderen gibt es von einigen Seiten Bedenken bezüglich sogenannter U-Boot-Patente. Will heißen, dass derzeit niemand so richtig dafür garantieren kann, dass nicht doch irgendwelche Firmen bestimmte Patente aus Theora geltend machen können und mit Klagewellen die Nutzer in den finanziellen Ruin treibt. Ich bin kein Experte auf diesem Gebiet, und die Diskussion darüber ist sehr heiß, deswegen gehe ich hier nicht näher ins Detail.

Insgesamt sieht es aber gerade so aus, als ob die H.264-Fraktion die Oberhand gewinnt – vor allem seit Microsoft mit der Vorstellung des Internet Explorer 9 ebenfalls HTML5-Video unterstützt und dabei mit großer Sicherheit H.264 nutzen wird, da dieser Codec grundsätzlich in Windows 7 schon eingebaut ist.

Die Mozilla-Foundation hingegen ziert sich derzeit noch und hält an Theora fest, obwohl eigentlich genug Geld da wäre, die H.264-Lizenzkosten zu zahlen. Es geht hier mehr um ideologische Gründe, da Firefox ein Open-Source-Produkt ist und eigentlich keine lizenzpflichtigen Technologien enthalten sollte. Das ist auf der einen Seite verständlich und löblich, hilft jedoch den Video-Publizisten wenig; Denn eigentlich war das Ziel ja, sich auf einen einzigen Videocodec zu beschränken und diesen auf möglichst vielen Plattformen mit möglichst geringer Prozessorleistung abspielbar zu machen.

Und wenn wir pragmatisch denken, können wir diesem Ziel (trotz der widrigen Umstände) auch heute schon sehr nahe kommen.

Aktueller Gral (mit Fallback)

Der Trick, den ich allen Video-Publizisten ans Herz legen möchte, ist eine Kombination aus HTML5-Video, JavaScript und Flash, wobei die Handhabung wirklich sehr einfach ist.

Die Code-Basis ist das zukunftssichere HTML5-Video-Element, mit dem wir ein H.264-Video referenzieren. Das kann ungefähr so aussehen:

<video src="/path/myvideo.mp4" width="480" height="360" autobuffer autoplay controls> <p>Alternativer Inhalt</p> </video>

Dieses Konstrukt wird klaglos in aktuellen Safari- und Chrome-Browsern abgespielt. Die Steuerelemente (Start, Pause, Lautstärke usw.) werden von Browser geliefert, können aber auch per JavaScript individuell programmiert werden (zum Beispiel mit SublimeVideo). Um die Sache auch auf iPod touch und iPhone verfügbar zu machen, muss sich die MP4-Datei an bestimmte Spezifikationen halte, was Bitrate und Pixelgröße angeht. Die freie Encoder-Software Handbrake stellt hierfür ein perfektes Preset zur Verfügung.

Um das Video jedoch auch zu Firefox, Opera und IE <9 kompatibel zu machen, binden wir ein geniales JavaScript namens html5media ein, welches automatisch alle Vorkommen von <video> erkennt und durch eine Instanz des flashbasierten Flowplayers ersetzt, welcher dann mit der H.264-Videodatei gefüttert wird. Um auch hier eine optimale Abspielbarkeit zu gewährleisten, sollte das Video übrigens so codiert sein, dass die Headerinformationen im Kopf der Datei stecken. Über einen simplen Klick auf die Option »Web optimized« ist dies in Handbrake problemlos machbar.

Und prinzipiell war’s das auch schon! Wir haben unser grundsätzliches Ziel erreicht, dabei das Performance-fressende Flash auf den Systemen verbannt, wo es besonders viel Performance frisst (Mac und iPhone), und leben noch eine Weile mit Flash, wo es uns hilft, die Kompatibilität zu H.264 zu erhöhen (IE, Firefox, Windows). Und wie es sich fügt, besitzt Flash unter Windows auch die Fähigkeit zur Hardwarebeschleunigung, so dass aus Sicht der Performance kaum Wünsche offen bleiben.

Elephants Dream

Die Zukunft

Dass der Kampf der Videoformate damit nun zur Ruhe kommen würde, dafür spricht jedoch so gut wie nichts: Nachdem Google sich im August 2009 die bis dato unabhängige Code-Schmiede On2 gekauft hatte, um an die Technologie des brandneuen und »beinahe-so-gut-wie-H.264«-Codecs namens VP8 heranzukommen, veröffentlichte der Webgigant im Mai 2010 zusammen mit einigen prominenten Unterstützern das WebM-Videopaket, welches – grob gesprochen – aus dem Container-Format Matroshka, dem Videocodec VP8 und dem Audiocodec Vorbis besteht. Eine klare Kampfansage an das MPEG-LA-Konsortium, welches über die Lizensierung von H.264 und AAC wacht, denn WebM ist komplett Open Source, und im Vergleich zu Theora stehen diesmal eine Reihe prominenter Firmen mit ihrem Namen für das Produkt ein.

Über die Qualität von VP8 gibt es zum Teil gedämpfte Expertenmeinungen, ebenso ist es juristisch und technisch nicht wirklich geklärt, ob VP8 auch wirklich keine MPEG-Patente verletzt. Dennoch hat die Veröffentlichung von WebM und die (derzeit noch experimentelle) Implementierung in YouTube und dem Chrome-Browser dazu geführt, dass die MPEG-LA aufgewacht ist, und im August 2010 den H.264-Codec ohne zeitliche Beschränkung von den Lizenzkosten befreit hat, die der Inhalte-Anbieter zu zahlen hätte – sofern es sich um kostenlose Videos handelt.

Polemisch gesprochen hat Google (und damit vor allem YouTube) dann wohl erreicht, was sie wollten: Einen halbgaren, mäßig dokumentierten Open-Source-Codec ins Rennen schicken, um den überlegenen und technisch bestens etablierten H.264-Codec auf YouTube weiterhin milliardenfach kostenlos nutzen zu können.