
Der <video>-Tag ist eine Neuerung von HTML 5 und dient dazu, Filme und Videos abzuspielen. Videos können — wie Bilder mit dem <img>-Tag — direkt in eine HTML-Seite eingebettet werden. Selbstverständlich können die Videos deshalb auch mit CSS und JavaScript kombiniert werden.
Nach den ersten Video-Tag Demos mit HTML 5 wird in diesem Artikel gezeigt, wie man Videos selbst einbaut und den <video>-Tag aus HTML 5 mit aktuellen Browsern bereits einsetzen kann.
Keine Plugins, aber unterschiedliche Video-Codecs
Zum Abspielen sind mit HTML 5 keine Browser-Plugin wie z.B. Silverlight oder Flash Player nötig. Voraussetzung für den <video>-Tag ist lediglich ein aktueller Browser wie Firefox (ab 3.5) oder Safari (ab 4).
Leider wurde bisher kein gemeinsamer Nenner von den Browserherstellern gefunden, welche Video-Codecs eingesetzt werden dürfen/müssen. Die möglichen Codecs hängen deshalb vom Browser ab.
Firefox setzt auf Theora
Firefox kann Videos mit Theora-Codec in einem Ogg-Container (.ogv) abspielen. Der dazugehörige Ton muss als Vorbis vorliegen. Für die Tonspur wäre auch das Wave-Format möglich, das aufgrund der fehlenden Kompression jedoch in der Regel im Web wenig sinnvoll ist.
Safari kann MPEG-4
Safari hingegen setzt auf das MPEG-4-Format mit dem bekannten und effizienten Codec-Duo H.264 (Video) und AAC (Audio). Dies verspricht eine bessere Qualität als Theora, allerdings stoßen die MPEG-4-Lizenzgebühren bei den anderen Herstellern wie Opera nicht auf Gegenliebe.
Erwähnenswert: Die beschriebenen HTML 5-/Video-Features sind auch in der mobilen Safari-Version für das iPhone verfügbar und einsetzbar (ab iPhone OS 3).
Google Chrome spielt Theora und MPEG-4
Google Chrome unterstützt in der aktuellen Beta (ab 3.0.182.2) sowohl Theora als auch H.264. Allerdings gibt es den H.264-Support nur in der von Google selbstvertriebenen Browser-Variante (also Google Chrome), wohingegen das zugrundeliegende Open Source Projekt Chromium dies aus besagten Lizenzkosten nicht kann.
Internet Explorer noch offen
Von Microsoft gibt es bisher noch keine Informationen, wie die Firma zu diesem Thema steht. Für den IE muss deshalb ein Fallback definiert werden (siehe unten). Update: Internet Explorer unterstützt H.264.
MIME-Type für den Server
Serverseitig muss beim Progressive Download, also dem Abspielen von einem gewöhnlichen Webserver, nichts besonderes beachtet werden.
Bei Ogg-Dateien (.ogv) könnten eventuell noch serverseitige Probleme entstehen, wenn der MIME-Type für Ogg-Videos nicht gesetzt ist. Dies lässt sich jedoch beheben, wenn man eine htaccess-Datei mit dem Befehl AddType video/ogg .ogv angelegt. Hinweis: Nach dem Anlegen der htaccess-Datei zum Ausprobieren den Browser-Cache löschen!
Die Basics
Videodatei einbinden
Das erste Beispiel zeigt, wie man ein Video auf einfachste Weise einbindet. Es wird lediglich die Größe festgelegt. Der Parameter autoplay sorgt dafür, dass das Video sofort abgespielt wird.
-
<video src="test.ogv" width="320" height="240" autoplay>
-
This browser is not compatible with HTML 5
-
</video>
Je nach Codec-Unterstützung des Browser (siehe oben) ist sieht das Ergebnis so aus: Beispiel anschauen (Ogg-Video) bzw. Beispiel anschauen (MPEG-4)
Nicht besonders toll, wenn man jeden Browser unterschiedlich behandeln muss, oder? Doch es geht einfacher, wie das nachstehende Beispiel zeigt. Gibt man mehrere Quelldateien an, kann der Browser sich die unterstützten Formate selbst heraussuchen.
Firefox nimmt Ogg, Safari nimmt MPEG-4. Und was macht Chrome, der beides kann? Hier wird das oberste verwendet.
-
<video width="640" height="480" autoplay>
-
<source src="test.mp4" type="video/mp4" />
-
<source src="test.ogv" type="video/ogg" />
-
This browser is not compatible with HTML 5
-
</video>
Beispiel anschauen (Ogg und MPEG-4)
Fallback für ältere Browser
Für ältere Browser, die kein HTML 5 unterstützen, lässt sich ein alternativer Code für einen Fallback definieren. Dieser wird — in Form eines gewöhnlichen HTML-Codes — einfach innerhalb des <video>-Tags geschrieben.
Öffnet man eines der beiden Beispiel oben im Internet Explorer oder einem älteren Browser, wird lediglich der Text „This browser is not compatible with HTML 5” angezeigt. Selbstverständlich können an dieser Stelle auch komplexere HTML-Elemente oder JavaScript-Befehle stehen.
Besser als ein Text wäre natürlich eine wirkliche Alternative anzubieten. Dies könnte beispielweise ein Code sein, der das Video im Flash Player abspielt.
Steuerung (Controls)
In der Regel werden Bedienelemente benötigt, damit der Nutzer das Video z.B. pausieren oder darin spulen kann. Die Browser bringen deshalb von Haus aus eine „Standard-Bedienleiste” mit, die allerdings alle unterschiedlich aussehen (links: Firefox, rechts: Safari). Beim iPhone öffnet sich der (integrierte) Mediaplayer, der auch für die YouTube-Wiedergabe verwendet wird.

Damit das Player-Skin erscheint, aktiviert man dieses über controls
-
<video width="320" height="240" controls>
-
<source src="test.mp4" type="video/mp4" />
-
<source src="test.ogv" type="video/ogg" />
-
This browser is not compatible with HTML 5
-
</video>
Beispiel anschauen (Controls)
Um Verwirrung zu vermeiden (der ich ebenfalls erlegen bin): Man könnte meinen, dass die Eigenschaft über controls="true"oder controls="false" ebenfalls aktiviert bzw. deaktiviert werden kann. Dies ist jedoch nicht so! Die Begründung:
A number of attributes in HTML5 are boolean attributes. The presence of a boolean attribute on an element represents the true value, and the absence of the attribute represents the false value.
Also: Einfach das Attribut weglassen oder hinzufügen, dann sobald die Eigenschaft verwendet wird, gilt sie als aktiviert.
Weitere Attribute des video-Tag
Mit width und height wählt man die Größe, in der das Video abgespielt werden soll. Idealerweise sollte die Größe mit der nativen Auflösung der Videodatei übereinstimmen.
Die Eigenschaft autoplay legt fest, ob das Video automatisch gestartet werden soll oder nicht.
Die Eigenschaft autobuffer ist normalerweise deaktiviert. Das Video wird deshalb erst dann heruntergeladen, wenn der Nutzer auf den Play-Button drückt (oder autoplay verwendet wird). Aktiviert an das automatische Buffering jedoch, wird das Video beim HTML-Seitenaufruf sofort komplett heruntergeladen. Beispiel anschauen.
Mit poster kann man ein Bild hinterlegen (z.B. poster=poster.jpg). Dies wird zum einen angezeigt, solange das Video noch nicht geladen ist. Zum anderen wird es auch dargestellt, wenn es Probleme mit dem Videofile (z.B. nicht vorhanden).
Beispiel anschauen (Bild wird angezeigt, weil das Videofile nicht existiert)
Hinweis: Allerdings funktioniert dies zurzeit noch nicht mit Firefox, da es dort in Version 3.5 nicht implementiert ist.
Ausblick
In einem weiteren Artikel werde ich zeigen, wie sich der Video-Tag mit JavaScript/CSS kombinieren lässt, um z.B. ein eigenes Player-Skin zu implementieren. Stay tuned …
Linkliste
Link: W3C
Link: Media formats supported by the audio and video elements
Link: Codecs for <audio> and <video>
48 Kommentare zum Beitrag "Einführung: Videos einbinden mit HTML 5"
thx, hat mir sehr geholfen
[...] der Syntax des video-Tags und der möglichen Parameter bei w3Schools (englisch) Hervorragender Workshop bei video-flash.de Eintrag merken [...]
Guter Artiker, sehr interessant. Ich freu mich richtig darauf, dass die neue Firefox-Version noch diesen Monar kommt. Denn dort wird HTML5 scheinbar ebenfalls unterstüzt.
Danke. Ich finde den Video-Tag in HTML5 auch eine sinnvolle Sache. Mit IE9 soll ja auch HTML5 kommen.
Sehr gut, vielen dank….wenn ich jetzt noch Wüsste wie ich ein "Hintergrundbild definieren…bzw. wie ich das Video sozusagen über einem Bild abspielen kann wäre das sehr genial….So das dieses Video immer 50px von oben und 30 von links auf dem Bild positioniert wird, egal wo das Bild auf der Seite ist….
@Colin: Du kannst das Video-Element einfach in einen HTML-Container werfen und diesem über CSS ein Hintergrundbild geben.
flo, vielen dank, genau das ist die Lösung….warum ich das im ganzen Web nicht gefunden habe ist mir nun ein Rätsel, aber so funktioniert das…sollte mich unbedingt mehr mit CSS beschäftigen, aber eben bin mehr am Inhalt der Seite zu arbeiten…;)
Der HTML5-Videotag ist noch recht neu, deshalb findet man wahrscheinlich bei Google noch nicht so viele Ergebnisse.
Aber man kann wie mit jedem anderen HTML-Element arbeiten … praktische Sache, der Video-Tag :)
Hi,
bei mir läuft es im Firefox 3.5 lokal aber nicht online. Bei Chrome funktioniert es seltsamerweise. Hat einer eine Idee woran das liegen kann?
Grüße
Munch
Das obige Beispiel oder allgemein?
Das obige Beispiel. Gleiches Video und gleicher Quellcode… quasi nur dein Beispielseite kopiert…
Seltsam, bei mir funktioniert es. Habe ich leider keinen Tipp dazu.
Top Artikel
hat mir geholfen
weiter so
Wer sein Video mal eben zum Testen von HMTL5 nach Theroa konvertieren möchte, dem empfehle ich ein Online Konvertierer, z.B. mit: http://video.online-convert.com/convert-to-ogg
Super Beitrag. Gibt's den angekündigten Artikel über das eigene Player-Skin schon irgendwo?
Danke. Leider nein, die Rohfiles hatte ich zwar schon erstellt, aber es wurde nie ein Beitrag draus :-(
Schreib's mir aber mal auf die Agenda.
Hey, echt super Beitrag. Sehr leicht verständlich und vorallem sehr gut strukturiert. Auch ich würde mich über den Artikel über das eigene Player-Skin freuen. Ich hoffe da wird was draus :)
Mit IE7 und IE8 geht kein HTML5.
Microsoft hat jetzt mit dem Internet Explorer 9 (IE9) angekündigt, sowohl HTML5 und damit auch H.264 als Videocodec einzuführen.
ihr habt opera vergessen :/
Echt ein super Artikel, der die Grundlagen vernünftig und übersichtlich erklärt. Beim Durchlesen der W3C-Specs ist mir aufgefallen, dass das "autobuffer"-Attribut zu "preload" umbenannt worden ist. Vielleicht kannst du das ja in deinem Artikel ergänzen. ;-)
HTML 5
sehr gut ich habe einen Film Quick T , den würde ich gerne im HTML Format umwandeln.
Kennt jemant eine Mac Software die das macht.
Danke Peter
Ein „HTML-Format” gibt es nicht. Du solltest MPEG-4 (H.264/AAC) verwenden. Dies geht z.B. mit QuickTime Pro.
Hier auch ein passender Beitrag:
http://www.video-flash.de/index/open-source-mpeg-4-flashvideo-encoding-mit-ffmpegx-x264-aac/
Der Code hat mir sehr geholfen, funktioniert einwandfrei. Da ich nur mit iWeb arbeite und keine Ahnung von der Programmierung habe wäre ich um einen fertigen Code mit Flash-Fallback eines gängigen Flashplayers dankbar.
Merci und Gruß – Markus
Vielleicht ist hier ein fertiger HTML5-Videoplayer für dich dabei:
http://www.video-flash.de/index/html5-video-player/
http://www.video-flash.de/index/html5-videoplayer-uebersicht2/
Der Beitrag ist sehr hilfreich. Allerdings würde ich mich auch über den Beitrag mit eigenem Design freuen.
Hallo,
ich habe zum Testen mich genau nach Deinen Anweisungen und Code oben gehalten – es hatte aber bei mir nicht funktioniert (Safari und IE) … Warum auch immer.
Ich habe folgenden Code innerhalb des <video> Tags dazugefügt, nun funktioniert es einwandfrei auf allen Browsern, auch älteren und ohne Flash Fallback:
<object width="640" height="375" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"><!
[endif]–><!–[if !IE]><!–>
<object width="640" height="375" type="video/quicktime" data="test.mp4">
<!–<![endif]–>
Hi, kann mann über dem Video Hotspots plazieren, für Buttons im Clip beispielsweise?
…wer kann mir helfen????
Ich möchte ein "Video.mp4" in eine einfache html Seite einbinden.
Die Seite.html liegt bei mir vorerst (Offline) in einem lokalen Ordner in D:\Projekt !
Die html Seite soll eine feste Breite von 480 Pixeln bekommen.
Es müssen relative Pfade zu den Videos (liegen im selben Ordner) sein,
damit ich das Ganze irgendwann auf einen Blog hochladen kann
der ebenfalls eine Breite von 480px hat. Damit auch dort noch
alle Verknüpfungen funktionieren.
In der .html Seite steht an sich Text und dazwischen sollen viele Videos
eingebunden werden. Diese sollten zentriert eingebunden werden.
Zudem werden die Videos in 720p Auflösung produziert.
In der .html Seite dürfen Sie aber nur 480px breit sein,
ohne das etwas vom Video abgeschnitten ist. Also quasi einfach
verkleinert dargestellt. Wenn man dann auf das Video klickt soll
es in groß, also mit 720px dargestellt werden (Vollbild).
Auch würde ich gerne auf QuickTime verzichten können, wenn möglich.
Denn es sollte nicht so sein, dass man extra Software installieren muss.
Funktionieren soll das Ganze in FireFox und im MS Internet Explorer.
Beim öffnen der html Seite, sollen die Videos nicht von selbst
starten, da sonst ja ca. 100 Videos gleichzeitig loslaufen!
Erst per Mausklick auf Play soll das angeklickte Video starten.
Zudem frage ich mich ob es rein von der Länge des .html files oder von
der Anzahl der Videos her irgendwelche Begrenzungen gibt?
Vielen Dank!
Julia
Lokal ist das Abspielen einer ogv-Datei im Firefox 3.6 bei mir kein Problem. Wenn ich es jedoch auf meinen Webspace lade, wird leider keine korrekte Angabe zur Gesamtlänge in der controls-Leise gemacht und der Wiedergabebalken läuft dem Video hinterher. Dem kann man beikommen, indem man in dem Verzeichnis, in dem die Videodatei liegt, eine .htaccess Datei mit folgendem Inhalt schreibt:
<Files "Video-Dateiname">
Header set X-content-Duration "Angabe in Sekunden"
</Files>
weitere nützliche Hinweise zur Serverkonfiguration findet man auf: https://developer.mozilla.org/en/Configuring_servers_for_Ogg_media
Die Website ist wunderbar und der Artikel ist für mich persönlich sehr nützlich. Ich hatte nur das kleine Problem, deinen Rss zu abonnieren. Ich weiß nicht warum, aber das klappte erst beim dritten Versuch. Geht es anderen auch so? Falls es so wäre, müsstest Du mal die Einstellungen checken. Alles andere ist toll, gute, schnelle Ladezeit usw. Kann man sich durchaus was abschauen
Wie kann ich den html5 benutzen um Videos einzubinden die nur registrierten Usern zugängig gemacht werden soll, und auch das das sniffen der Streaming-URL Sinnlos ist, da diese ohne Registration nicht abgespielt wird? Oder noch besser das man die URL garnicht erst sniffen kann.
Da kommst du aktuell mit HTML5 nicht weit. Mit Plugins wie Flash oder Silverlight sind DRM-fähige Videoauslieferungen möglich.
Na Flash auf einem Android Handy mit Arm6 Prozessor geht nicht.
Gibts denn die Möglichkeit den Stream "auszublenden" ?
Attribute werden XHTML konform angegeben!!!
z.B. controls="controls"
Habt ihr einen guten >Sound<Button, der alssowohl am PC und beim Iphone funktioniert –> Zur Einbindung in HTML.
Noch ein Hinweis am Rande:
"<video width="320" height="240" controls>
…
"
funktioniert zwar ist jedoch nicht W3C-konform. Richtig wäre es so:
"<video width="320" height="240" controls="controls">
…"
Siehe auch hier:
http://www.w3schools.com/html5/tag_video.asp
Prima Artikel – Ich fand ihn als ich nach einer Referenz gesucht habe. Nun hab ich sie :) – Kleiner Tip am Rande: Auf dem MAC läuft auch Firefox, oder? – Dann könnt ihr ganz easy mit dem Plugin/Addon 'fireogg' so gut wie jedes Videoformat in .ogv konvertieren (auch offline).
Hi! leider funktioniert bei mir dieses controls="false" nicht.. ich möchte ein Video ohne Controls anzeigen, wie geht das? Ich nutze den Chrome. Danke.
Siehe oben:
„Also: Einfach das Attribut weglassen oder hinzufügen, dann sobald die Eigenschaft verwendet wird, gilt sie als aktiviert.”
Gibt es auch eine Loop Funktion? So das sich das Video wiederholt?
Siehe http://dev.w3.org/html5/spec/Overview.html#attr-media-loop
Ob es in allen Browsern implementiert ist, müsstest du recherchieren.
Super Artikel, hilft sehr!
Wer kann hier helfen:
Ich möchte zwei Videos nebeneinander auf eine Seite stellen. Ohne autoplay, mit controlls. Das funktioniert bis hierher, aber wenn man eins der beiden Videos startet, verschwindet beim anderen das Vorschaubild.
Und:
Wie gebe ich die Möglichkeit für "Vollbild" an? Die Videos an sich sind groß genug, der Platz im html-Container ist kleiner.
Gibt es eine Möglichkeit, dass am Ende des Videos eine automatische Weiterleitung auf eine andere Seite erfolgt?
Danke und Grüße
Mich würde auch interessieren ob es möglich ist nach Beendigung des Videos
automatisch zu einer anderen Seite zu springen, oder einen Befehl auszuführen.
Danke für die Mühe
Hallo,
habe mit dem Code:
…..
<video width=480 height=320 controls poster="bilder/poster-kids.jpg">
<source src=src="bilder/timetimer_kids.ogv" type=video/ogg>
</video>
eingebunden.
Wenn ich nun die Seite aufrufe, wird das Bild angezeigt in Firefox, aber es steht im Bild "kein Video mit unterstütztem Format und MIME Type gefunden"
Wenn ich die ogv Datei im Firefox mit Datei öffnen öffne, dann spielt das Video richtig ab…
Was mache ich falsch?
Gibt es eine Möglichkeit zu unterbinden, dass das Video auf dem iPhone im Player geöffnet wird? Ich habe es schon auf 320×200 verkleinert, aber er öffnet das trotzdem immer im Player.
Ich wüßte nicht, dass es eine Möglichkeit gibt.
SUPER EINSATZ VON DIR!!!
hast mir den Tag gerettet, weiter so!
HOW TO eigenes Design wär noch einen Artikel wert :)
grüße aus berlin
Schreibe einen Kommentar