Sprung zum Inhalt

Webdesign nach Maß von webdesign weisshart

Das HTML5 video-Element — Stand 2014 2016

Vor einer gefühlten Ewigkeit habe ich über meinen ersten Versuch mit dem nativen video-Element berichtet. Firefox war damals bei Version 3.5, also muss das so um das Jahr 2009 gewesen sein.
Was hat sich seitdem getan?

Die Syntax

Vor HTML5 war das Einbinden von Videos sehr aufwendig. Mit HTML5 ist das fast so einfach wie das Einbinden einer Grafik:

<video controls> <source src="movie.mp4" type="video/mp4"> </video>

(M)eine fertige Lösung:

Demo (auf neuer Seite)

Mehr als nur das Allernötigste

In der Demo gibt es einige Erweiterungen, die über die oben gezeigte einfache Syntax hinausgehen:

  1. Die Buttons zur Steuerung wurden per JavaScript dupliziert, d. h. zusätzlich unterhalb des Players eingebaut. Der Grund hierfür: Die Zugänglichkeit mit der Tastatur sicherstellen.
  2. Es wurden Untertitel eingefügt. Dazu dient das <track>-Attribut.
  3. Eine Beschreibung des Videos, sowie eine Transkription können zusätzlich angezeigt werden.
  4. Der Internet Explorer Version 8 und früher unterstützt das video-Element nicht. Für diesen Fall muss ein Fallback vorgesehen werden.


zu 1.: Die Syntax ist im Quellcode der Demo nachzulesen. Ebenso die CSS-Anweisungen, um den Fokus beim Durchtabben mit der Tastatur zu kennzeichnen.
Die zusätzlichen Buttons habe ich per Media Queries vor iPhones versteckt. Da HTML5 Videos im iPhone grundsätzlich in einem eigenen Fenster angezeigt werden, macht die externe Steuerung keinen Sinn.

zu 2.: Die Unterstützung für das <track>-Attribut ist leider von Browser zu Browser unterschiedlich, und insgesamt sehr unvollkommen. Im Firefox gibt es keinen Button zum Deaktivieren von Untertiteln (auch 2016 noch nicht!); in einigen Versionen des Internet Explorer gibt es zwar diesen Button, aber Untertitel werden nicht angezeigt. Noch schlechter sieht es derzeit mit Audio-Description aus. Barrierefreie Einbindung von Videos kann man folglich mit dem nativem video-Element heute noch nicht realisieren. Falls wirklich Barrierefreiheit gewünscht wird, dann muss nach wie vor mehr Aufwand getrieben werden.
Einen schönen Accessible HTML5 Video Player gibt es bei PayPal Engineering. Hier die Demo des PayPal Players.

zu 3.: Anstelle von Untertiteln und Audio-Description könnte auch eine Beschreibung des Videos in Textform, sowie eine Transkription der Dialoge dienen. In der Demo wurden Beschreibung und Transkription ein- und ausblendbar gemacht (jQuery).

zu 4.: Als Fallback für alte Browser eignet sich ein einfacher Link zu einer Videodatei im .mp4 Format. Die Datei kann dann entweder heruntergeladen werden, oder in einem auf dem System verfügbaren Player, z. B. dem Windows Media Player, abgespielt.
Die Syntax zum Einbinden einer Fallback-Lösung ist wiederum ganz einfach:

<video controls> <source src="movie.mp4" type="video/mp4"> Hierher Fallback, z. B. ein Link </video>

Fazit

  1. HTML5 Video verwenden an Stelle von Flash!
  2. Bei hohen Ansprüchen an Barrierefreiheit: Eine Transkription in Textform für Menschen mit Hörbeeinträchtigungen, und eine Beschreibung für blinde Menschen.

Stand 2016:

Alle modernen Browser unterstützen das MPEG-4/H.264 Format (.mp4). caniuse.com
-Ein alternatives Format ist heute nicht mehr nötig. Alles im Folgenden geschriebene ist daher obsolet.

Das funktioniert. Leider konnten sich die Browserhersteller nicht auf ein einheitliches Videoformat einigen. So funktionieren z. B. Videos im MPEG-4/H.264 Format (.mp4) nicht im aktuellen Firefox (bis einschließlich Version 33), und nicht im Opera Browser.
Daher müssen leider mehrere Videoformate von ein und demselben Film erstellt werden. Die Einbindung erfolgt dann mit folgender Syntax:

<video controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.webm" type="video/webm"> </video>

Der Browser sucht sich dann einfach das Format aus, das er unterstützt. Sehr cool.

Und warum habe ich als Alternativformat .webm gewählt?
Weil ich mit diesen beiden Formaten praktisch alle Browser abdecke. Und weil ich es einfacher finde, ein .webm in ordentlicher Qualität aus einem vorhandenen Film zu konvertieren, als dies bei .ogg der Fall ist. Aber das mag eine persönliche Vorliebe sein. Grundsätzlich ist als Alternativformat auch .ogg geeignet.

Ein wunderbares Online-Tool, das all diese Informationen ausspuckt, ist canisuse.com

Anmerkung: Ich verwende zum Konvertieren von Videoformaten übrigens den Miro Video Converter.

Ein Fallstrick

Wenn das Video nicht gespielt wird, und anstelle des Videos nur eine Fehlermeldung angezeigt wird, dann ist häufig der Server der Schuldige. Viele Server müssen erst explizit angewiesen werden, damit sie einen bestimmten MIME Type ausliefern. Dies geschieht bei Apache Servern in der .htaccess Datei, mit einer Anweisung folgender Art:
AddType video/webm .webm
Mehr zu MIME Types

3 Kommentare

  1. Benno Faltin schrieb am Sonntag, 07.02.16 19:41 Uhr:

    Um das Video auf allen wichtigen Browsern anzeigen zu können, mußte ich folgenden Html5-Code mit 3 verschiedenen Video-Formaten eingeben.
    <video id=0 controls width=640>
    <source src="gerda-wandert-durchs-karwendel.ogv" type='video/ogg; codecs="theora, vorbis"'/>
    <source src="gerda-wandert-durchs-karwendel.webm" type='video/webm' >
    <source src="gerda-wandert-durchs-karwendel.mp4" type='video/mp4'>
    <p>Video is not visible, most likely your browser does not support HTML5 video</p>
    <object>
    <embed src="gerda-wandert-durchs-karwendel.mp4" type='application/x-shockwave-flash'>
    </object>
    <p>Video is not visible, most likely your browser does not support HTML5 video</p>
    </video>

    Ist das korrekt? Die 3 Videos belegen dann schon 1GB an Speicherplatz, eine Idiotie der Browser-Hersteller.

  2. Fritz schrieb am Sonntag, 07.02.16 20:46 Uhr:

    @Benno Faltin
    Diese Lösung war vor einigen Jahren tatsächlich nötig. Inzwischen unterstützen praktisch alle Browser mp4.
    Es genügt also das Einbinden eines einzigen Formats.

  3. M. Kruse schrieb am Donnerstag, 24.11.16 15:33 Uhr:

    Da ich bis jetzt noch nicht wusste, dass alle aktuellen Browser neuerdings MP4 lesen, war ich schon wieder kurz davor, ein fertiggestelltes MP4 Video zusätzlich in webm zu konvertieren, um es in eine Webseite einzubetten. Das kann ich mir jetzt endlich sparen. Toll!
    Vielen Dank für diese und andere wertvolle Informationen zum Video Einbetten.

Ihr Kommentar zu diesem Artikel:

Über Ihren Kommentar oder Ihre Frage zu diesem Artikel freue ich mich. Ich behalte mir jedoch vor, Einträge wider die guten Sitten, unsinnige Einträge, oder Spam kommentarlos zu entfernen.