Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Das <video>-Element HTML bettet einen Mediaplayer ein, der die Videowiedergabe im Dokument unterstützt. Sie können <video> auch für Audioinhalte verwenden, aber das <audio>-Element bietet möglicherweise eine besser geeignete Benutzererfahrung.
Das obige Beispiel zeigt, wie man das <video>-Element verwendet. Ähnlich wie beim <img>-Element geben wir einen Pfad zu dem Medium an, das wir in dem Attribut src anzeigen möchten; wir können andere Attribute hinzufügen, um Informationen wie Videobreite und -höhe anzugeben, ob wir möchten, dass es automatisch abgespielt und wiederholt wird, oder um die Standard-Videosteuerung des Browsers anzuzeigen, usw.
Der Inhalt zwischen den öffnenden und schließenden <video></video>-Tags wird als Fallback in Browsern angezeigt, die das Element nicht unterstützen.
Wie alle anderen HTML-Elemente unterstützt dieses Element die globalen Attribute.
autoplayEin Boolean-Attribut; wenn angegeben, beginnt das Video automatisch mit der Wiedergabe, sobald es geladen werden kann, ohne das Laden der Daten zu unterbrechen.
Hinweis: Moderne Browser blockieren Audio (oder Videos mit einem nicht stummgeschalteten Audiospur) von der automatischen Wiedergabe, da Webseiten, die automatisch Audio abspielen, eine unangenehme Erfahrung für Benutzer sein können. Sehen Sie sich unseren Autoplay-Leitfaden für zusätzliche Informationen zur korrekten Verwendung von Autoplay an.
Um die automatische Wiedergabe von Videos zu deaktivieren, funktioniert autoplay="false" nicht; das Video wird automatisch abgespielt, wenn das Attribut im <video>-Tag vorhanden ist. Um die automatische Wiedergabe zu entfernen, muss das Attribut komplett entfernt werden.
Hinweis: Videos mit dem Attribut loading="lazy" beginnen nicht mit dem Herunterladen und Abspielen, bis das Element in der Nähe oder innerhalb des Ansichtsfensters liegt.
Wenn dieses Attribut vorhanden ist, bietet der Browser Steuerelemente an, die es dem Benutzer ermöglichen, die Videowiedergabe zu steuern, einschließlich Lautstärke, Suchlauf und Wiedergabestopp/-fortsetzung.
controlslistDas controlslist-Attribut hilft dem Browser bei der Auswahl der anzuzeigenden Steuerelemente für das video-Element, wann immer der Browser sein eigenes Set von Steuerelementen zeigt (das heißt, wenn das controls-Attribut angegeben ist).
Die zulässigen Werte sind nodownload, nofullscreen und noremoteplayback.
Verwenden Sie das disablepictureinpicture-Attribut, wenn Sie den Bild-in-Bild-Modus (und dessen Steuerung) deaktivieren möchten.
crossoriginDieses enumerierte-Attribut zeigt an, ob CORS verwendet werden soll, um das zugehörige Video abzurufen. CORS-aktivierte Ressourcen können im <canvas>-Element ohne Verfälschung wiederverwendet werden. Die zulässigen Werte sind:
anonymousSendet eine Cross-Origin-Anfrage ohne Berechtigung. Mit anderen Worten, es sendet den Origin:-HTTP-Header ohne ein Cookie, X.509-Zertifikat oder HTTP-Basis-Authentifizierung. Wenn der Server der Ursprungsseite keine Berechtigungen erteilt (indem er den Access-Control-Allow-Origin:-HTTP-Header nicht setzt), wird die Ressource verfälscht, und ihre Nutzung eingeschränkt.
use-credentialsSendet eine Cross-Origin-Anfrage mit Berechtigung. Mit anderen Worten, es sendet den Origin:-HTTP-Header mit einem Cookie, einem Zertifikat oder einer HTTP-Basis-Authentifizierung. Wenn der Server der Ursprungsseite keine Berechtigungen erteilt (durch den Access-Control-Allow-Credentials:-HTTP-Header), wird die Ressource verfälscht und ihre Nutzung eingeschränkt.
Wenn nicht vorhanden, wird die Ressource ohne CORS-Anfrage (d.h. ohne Senden des Origin:-HTTP-Headers) abgerufen, wodurch ihre unverfälschte Verwendung in <canvas>-Elementen verhindert wird. Wenn ungültig, wird damit umgegangen, als ob das enumerierte Schlüsselwort anonymous verwendet wurde. Siehe CORS-Einstellungen für Attribute für weitere Informationen.
disablepictureinpictureVerhindert, dass der Browser ein Bild-in-Bild-Kontextmenü vorschlägt oder in einigen Fällen automatisch ein Bild-in-Bild anfordert.
disableremoteplaybackEin Boolean-Attribut, das die Fähigkeit zur Fernwiedergabe auf Geräten, die mit kabelgebundenen (HDMI, DVI usw.) und drahtlosen Technologien (Miracast, Chromecast, DLNA, AirPlay usw.) verbunden sind, deaktiviert.
In Safari können Sie x-webkit-airplay="deny" als Fallback verwenden.
heightDie Höhe der Anzeige des Videos in CSS-Pixels (nur Absolute Werte; keine Prozentsätze).
loadingGibt an, wie der Browser das Video (einschließlich eines Vorschaubildes) laden soll:
eagerLädt das Video sofort, unabhängig davon, ob sich das Video momentan im sichtbaren Ansichtsfenster befindet oder nicht (dies ist der Standardwert).
lazyVerzögert das Laden des Videos, bis es eine berechnete Entfernung vom Ansichtsfenster hat, wie vom Browser definiert.
Lazy Loading vermeidet das Netzwerk- und Speichernetzwerk-Bandbreite, die erforderlich ist, um das Video zu handhaben, bis es vernünftigerweise sicher ist, dass es benötigt wird. Dies verbessert die Leistung in den meisten typischen Anwendungsfällen.
Während explizite width- und height-Attribute für alle Videos empfohlen werden, um Layoutverschiebungen zu vermeiden, sind sie besonders wichtig für lazy-geladene Videos. Lazy-geladene Videos werden niemals geladen, wenn sie keinen sichtbaren Teil eines Elements überschneiden, selbst wenn ihr Laden dies ändern würde, da ungeladene Videos eine width und height von 0 haben. Dies erzeugt eine noch störendere Benutzererfahrung, wenn der sichtbare Inhalt im Ansichtsfenster mitten in der Ansicht umfließt.
Lazy-geladene Videos im visuellen Ansichtsfenster sind möglicherweise noch nicht sichtbar, wenn das load Ereignis des Fensters ausgelöst wird. Dies geschieht, weil das Ereignis auf der Grundlage von eager-geladenen Videos ausgelöst wird—lazy-geladene Videos werden nicht berücksichtigt, selbst wenn sie sich beim ersten Seitenaufruf im visuellen Ansichtsfenster befinden.
Das Laden wird nur verzögert, wenn JavaScript aktiviert ist. Dies ist eine Anti-Tracking-Maßnahme, denn wenn ein Benutzeragent Lazy Loading unterstützen würde, wenn Scripting deaktiviert ist, wäre es immer noch möglich, die ungefähre Scrollposition eines Benutzers während einer Sitzung zu verfolgen, indem Videos strategisch im Markup einer Seite platziert werden, so dass ein Server nachverfolgen kann, wie viele Videos angefordert werden und wann.
Hinweis: Das Attribut loading="lazy" wirkt sich auch auf die Attribute autoplay, poster und preload aus, wie in den jeweiligen Abschnitten der Seite beschrieben.
Ein Boolean-Attribut; wenn angegeben, springt der Browser automatisch zum Anfang zurück, wenn das Videoende erreicht ist.
mutedEin Boolean-Attribut, das die standardmäßige Stummschaltungseinstellung des im Video enthaltenen Audios angibt. Wenn gesetzt, wird das Audio anfangs stummgeschaltet. Sein Standardwert ist false, was bedeutet, dass das Audio abgespielt wird, wenn das Video abgespielt wird.
playsinlineEin Boolean-Attribut, das angibt, dass das Video "inline" abgespielt werden soll, das heißt innerhalb des Wiedergabebereichs des Elements. Beachten Sie, dass das Fehlen dieses Attributs nicht impliziert, dass das Video immer im Vollbildmodus abgespielt wird.
posterEine URL für ein Bild, das angezeigt wird, während das Video heruntergeladen wird. Wenn dieses Attribut nicht angegeben ist, wird nichts angezeigt, bis der erste Frame verfügbar ist; dann wird der erste Frame als Posterframe angezeigt.
Hinweis: Videos mit dem Attribut loading="lazy" laden die poster-Ressource nur herunter, wenn sich das Video in der Nähe oder innerhalb des Ansichtsfensters befindet.
Dieses enumerierte-Attribut soll dem Browser einen Hinweis geben, was der Autor glaubt, was die beste Benutzererfahrung in Bezug auf den Inhalt, der vor der Videowiedergabe geladen wird, bedeutet. Es kann einen der folgenden Werte haben:
Der Standardwert ist je nach Browser unterschiedlich. Die Spezifikation rät dazu, ihn auf metadata zu setzen.
Hinweis:
Die URL des einzubettenden Videos. Dies ist optional; Sie können stattdessen das <source>-Element im Videoblock verwenden, um das einzubettende Video anzugeben.
widthDie Breite der Anzeige des Videos in CSS-Pixels (nur Absolute Werte; keine Prozentsätze).
Der Eingabepuffer eines ScriptProcessorNode ist bereit zur Verarbeitung.
canplayDer Browser kann das Medium abspielen, schätzt jedoch ein, dass nicht genügend Daten geladen sind, um das Medium ohne Unterbrechung bis zum Ende abzuspielen, um den Inhalt weiter zu puffern.
canplaythroughDer Browser schätzt ein, dass er das Medium ohne Unterbrechung bis zum Ende abspielen kann, um den Inhalt weiter zu puffern.
completeDie Verarbeitung eines OfflineAudioContext ist beendet.
durationchangeDas duration-Attribut wurde aktualisiert.
emptiedDas Medium ist leer geworden; beispielsweise wird dieses Ereignis gesendet, wenn das Medium bereits geladen (oder teilweise geladen) ist und die load()-Methode aufgerufen wird, um es erneut zu laden.
endedDie Wiedergabe hat gestoppt, weil das Ende des Mediums erreicht wurde.
errorEin Fehler trat beim Abrufen der Mediendaten auf oder der Typ der Ressource ist kein unterstütztes Medienformat.
loadeddataDer erste Frame des Mediums ist geladen.
loadedmetadataDie Metadaten wurden geladen.
loadstartWird ausgelöst, wenn der Browser beginnt, die Ressource zu laden.
pauseDie Wiedergabe wurde pausiert.
playDie Wiedergabe hat begonnen.
playingDie Wiedergabe ist bereit zu starten, nachdem sie pausiert wurde oder wegen Datenmangels verzögert wurde.
progressWird periodisch ausgelöst, während der Browser eine Ressource lädt.
ratechangeDie Wiedergabegeschwindigkeit hat sich geändert.
seekedEine Such-Operation wurde abgeschlossen.
seekingEine Such-Operation wurde begonnen.
stalledDer Benutzeragent versucht, Mediendaten zu laden, aber Daten kommen unerwartet nicht weiter.
suspendDas Laden von Mediendaten wurde unterbrochen.
timeupdateDie durch das currentTime-Attribut angezeigte Zeit wurde aktualisiert.
volumechangeDie Lautstärke hat sich geändert.
waitingDie Wiedergabe hat gestoppt wegen eines vorübergehenden Mangels an Daten.
Browser unterstützen nicht alle das gleiche Videoformat; Sie können mehrere Quellen in geschachtelten <source>-Elementen angeben, und der Browser wird dann die erste davon verwenden, die er versteht.
Beim Einsatz von <source>-Elementen versucht der Browser, jede Quelle nacheinander zu laden. Wenn eine Quelle fehlschlägt (zum Beispiel wegen einer ungültigen URL oder eines nicht unterstützten Formats), wird die nächste Quelle versucht und so weiter. Ein error-Ereignis tritt auf dem <video>-Element auf, nachdem alle Quellen fehlgeschlagen sind; error-Ereignisse werden nicht für jedes einzelne <source>-Element ausgelöst.
Wir bieten einen substantiellen und gründlichen Leitfaden zu Medien-Dateitypen und den Leitfaden zu den unterstützten Codecs für Video. Auch verfügbar ist ein Leitfaden zu Audio-Codecs, die mit ihnen verwendet werden können.
Weitere Nutzungshinweise:
Eine gute allgemeine Informationsquelle zur Verwendung von HTML-<video> ist das HTML-Video und Audio-Einführungstutorial.
Das <video>-Element ist ein ersetztes Element — sein display-Wert ist standardmäßig inline — aber seine Standardbreite und -höhe im Ansichtsfenster wird durch das eingebettete Video definiert.
Es gibt keine besonderen Überlegungen für das Styling von <video>; eine gängige Strategie besteht darin, ihm einen display-Wert von block zu geben, um es einfacher zu positionieren, zu bemessen usw., und dann je nach Bedarf Styling- und Layoutinformationen bereitzustellen. Grundlagen des Video-Player-Stylings bietet einige nützliche Styling-Techniken.
Zeitgesteuerte Textspuren für Untertitel, geschlossene Untertitel, Kapitelüberschriften usw. können deklarativ durch Einbetten des <track>-Elements hinzugefügt werden. Die Spuren sind im Web Video Text Tracks File Format (WebVTT) (.vtt-Dateien) angegeben.
Zum Beispiel enthält der unten stehende HTML-Code die Datei "captions.vtt", die verwendet wird, um geschlossene Untertitel auf dem Video zu überlagern, wenn die Untertitel vom Benutzer aktiviert sind.
Zeitgesteuerte Texttracks können auch programmatisch mit der WebVTT API hinzugefügt werden.
Sie können erkennen, wann Tracks zu einem <video>-Element hinzugefügt und davon entfernt werden, indem Sie die addtrack und removetrack-Ereignisse verwenden. Diese Ereignisse werden jedoch nicht direkt an das <video>-Element selbst gesendet. Stattdessen werden sie an das Track-Listen-Objekt innerhalb des <video>-Elements gesendet, das den Typ der Track darstellt, der dem Element hinzugefügt wurde:
HTMLMediaElement.audioTracksEine AudioTrackList, die alle Audiospuren des Media-Elements enthält. Fügen Sie diesem Objekt einen Listener für addtrack hinzu, um benachrichtigt zu werden, wenn neue Audiospuren zum Element hinzugefügt werden.
HTMLMediaElement.videoTracksEine VideoTrackList, die alle Videospuren des Media-Elements enthält. Fügen Sie diesem Objekt einen addtrack-Listener hinzu, um benachrichtigt zu werden, wenn Videospuren zum Element hinzugefügt werden.
HTMLMediaElement.textTracksEine TextTrackList, die alle Textspuren des Media-Elements enthält (die für Untertitel, geschlossene Untertitel usw. verwendet werden). Fügen Sie diesem Objekt einen addtrack-Listener hinzu, um benachrichtigt zu werden, wenn Textspuren zum Element hinzugefügt werden.
Zum Beispiel, um zu erkennen, wann Audiospuren zu oder aus einem <video>-Element hinzugefügt oder entfernt werden, können Sie Code wie diesen verwenden:
Dieser Code überwacht das Hinzufügen und Entfernen von Audiospuren vom Element und ruft eine hypothetische Funktion in einem Track-Editor auf, um die Spur aus der Liste der verfügbaren Tracks des Editors zu registrieren und zu entfernen.
Sie können auch addEventListener() verwenden, um auf die addtrack und removetrack-Ereignisse zu hören.
Wenn der MIME-Typ für das Video nicht korrekt auf dem Server gesetzt ist, kann das Video möglicherweise nicht angezeigt werden oder ein graues Kästchen mit einem X angezeigt werden (wenn JavaScript aktiviert ist).
Wenn Sie Apache Web Server verwenden, um WebM-Videos bereitzustellen, können Sie dieses Problem beheben, indem Sie die Video-Dateierweiterungen zum MIME-Typ video/webm hinzufügen (die häufigste WebM-Dateierweiterung ist .webm). Um dies zu tun, bearbeiten Sie die Datei mime.types in /etc/apache oder verwenden Sie die AddType-Konfigurationsdirektive in httpd.conf:
AddType video/webm .webmIhr Web-Hoster kann eine einfache Schnittstelle zur Konfiguration von MIME-Typ-Änderungen für neue Technologien bereitstellen, bis ein globales Update natürlich erfolgt.
Videos sollten sowohl Untertitel als auch Transkripte bereitstellen, die ihren Inhalt genau beschreiben (siehe Hinzufügen von Untertiteln und Untertiteln zu HTML-Video für weitere Informationen darüber, wie diese implementiert werden). Untertitel ermöglichen es Menschen mit Hörverlust, den Audioinhalt eines Videos zu verstehen, während das Video abgespielt wird, während Transkripte es Menschen ermöglichen, die zusätzliche Zeit benötigen, um den Audioinhalt in einem angenehmen Tempo und Format zu überprüfen.
Es ist wichtig zu beachten, dass obwohl Sie Audios mit Untertiteln versehen können, dies nur möglich ist, wenn Sie Audio in einem <video>-Element abspielen, da die Videoregion des Elements verwendet wird, um die Untertitel anzuzeigen. Dies ist eines der speziellen Szenarien, in denen es nützlich ist, Audio in einem Videoelement abzuspielen.
Wenn automatische Untertitelungsdienste verwendet werden, ist es wichtig, den generierten Inhalt zu überprüfen, um sicherzustellen, dass er die Originalquelle korrekt wiedergibt.
Zusätzlich zu gesprochenem Dialog sollten Untertitel und Transkripte auch Musik und Soundeffekte identifizieren, die wichtige Informationen kommunizieren. Dies schließt Emotionen und Ton ein:
14 00:03:14 --> 00:03:18 [Dramatic rock music] 15 00:03:19 --> 00:03:21 [whispering] What's that off in the distance? 16 00:03:22 --> 00:03:24 It's… it's a… 16 00:03:25 --> 00:03:32 [Loud thumping] [Dishes clattering]Untertitel sollten das Hauptmotiv des Videos nicht verdecken. Die Position kann durch die der align-VTT-Anweisung zur Einstellung eingestellt werden.
Dieses Beispiel spielt ein Video ab, wenn es aktiviert wird und bietet dem Benutzer die standardmäßigen Videosteuerungen des Browsers zur Steuerung der Wiedergabe.
Bis das Video zu spielen beginnt, wird das Bild angezeigt, das im poster-Attribut angegeben wurde. Wenn der Browser die Videowiedergabe nicht unterstützt, wird der Fallback-Text angezeigt.
Dieses Beispiel baut auf dem letzten auf und bietet drei verschiedene Quellen für das Medium; dies ermöglicht das Ansehen des Videos, unabhängig davon, welche Videocodecs vom Browser unterstützt werden.
Zuerst wird AVI versucht. Wenn das nicht abgespielt werden kann, wird MP4 versucht. Eine Fallback-Nachricht wird angezeigt, wenn das Videoelement nicht unterstützt wird, jedoch nicht, wenn alle Quellen fehlschlagen.
Einige Mediadateitypen lassen es zu, spezifischere Informationen mit der codecs-Parameter als Teil der Dateitypzeichenkette bereitzustellen. Zum Beispiel, video/webm; codecs="vp8, vorbis" sagt, dass die Datei ein WebM-Video ist, das VP8 für sein Video und Vorbis für Audio verwendet.
| Fließinhalt, anschaulicher Inhalt, eingebetteter Inhalt. Wenn es ein controls-Attribut hat: interaktiver Inhalt und greifbarer Inhalt. |
|
Wenn das Element ein src-Attribut hat: null oder mehr <track>-Elemente, gefolgt von transparentem Inhalt, der keine Medienelemente enthält,– das heißt, kein <audio> oder <video>. Ansonsten: null oder mehr <source>-Elemente, gefolgt von null oder mehr <track>-Elementen, gefolgt von transparentem Inhalt, der keine Medienelemente enthält,– das heißt, kein <audio> oder <video>. |
| Keine, sowohl das startseitige als auch das endseitige Tag sind obligatorisch. |
| Jedes Element, das eingebetteten Inhalt akzeptiert. |
| Keine entsprechende Rolle |
| Anwendung |
| [`HTMLVideoElement`](/de/docs/Web/API/HTMLVideoElement) |
| HTML # the-video-element |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Positionieren und Dimensionieren des Bildes innerhalb seines Rahmens: object-position und object-fit
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.