The HTMLVideoElement interface provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement.
The list of supported media formats varies from one browser to the other. You should either provide your video in a single format that all the relevant browsers supports, or provide multiple video sources in enough different formats that all the browsers you need to support are covered.
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 23.333333333333332%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 140" preserveAspectRatio="xMinYMin meet"><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/EventTarget" target="_top"><rect x="1" y="1" width="110" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="56" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">EventTarget</text></a><polyline points="111,25 121,20 121,30 111,25" stroke="#D4DDE4" fill="none"/><line x1="121" y1="25" x2="151" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/Node" target="_top"><rect x="151" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="188.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Node</text></a><polyline points="226,25 236,20 236,30 226,25" stroke="#D4DDE4" fill="none"/><line x1="236" y1="25" x2="266" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/Element" target="_top"><rect x="266" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="303.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Element</text></a><polyline points="341,25 351,20 351,30 341,25" stroke="#D4DDE4" fill="none"/><line x1="351" y1="25" x2="381" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement" target="_top"><rect x="381" y="1" width="110" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="436" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">HTMLElement</text></a><polyline points="491,25 501,20 501,30 491,25" stroke="#D4DDE4" fill="none"/><line x1="501" y1="25" x2="509" y2="25" stroke="#D4DDE4"/><line x1="509" y1="25" x2="509" y2="90" stroke="#D4DDE4"/><line x1="509" y1="90" x2="492" y2="90" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement" target="_top"><rect x="331" y="65" width="160" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">HTMLMediaElement</text></a><polyline points="331,89 321,84 321,94 331,89" stroke="#D4DDE4" fill="none"/><line x1="321" y1="89" x2="291" y2="89" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement" target="_top"><rect x="131" y="65" width="160" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="211" y="94" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">HTMLVideoElement</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
Properties
Inherits properties from its ancestor interfaces, HTMLMediaElement, and HTMLElement.
HTMLVideoElement.height- Is a
DOMStringthat reflects theheightHTML attribute, which specifies the height of the display area, in CSS pixels. HTMLVideoElement.poster- Is a
DOMStringthat reflects theposterHTML attribute, which specifies an image to show while no video data is available. HTMLVideoElement.videoHeightRead only- Returns an
unsigned longcontaining the intrinsic height of the resource in CSS pixels, taking into account the dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used by the resource. If the element's ready state isHAVE_NOTHING, the value is0. HTMLVideoElement.videoWidthRead only- Returns an
unsigned longcontaining the intrinsic width of the resource in CSS pixels, taking into account the dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used by the resource. If the element's ready state isHAVE_NOTHING, the value is0. HTMLVideoElement.width- Is a
DOMStringthat reflects thewidthHTML attribute, which specifies the width of the display area, in CSS pixels.
Gecko-specific properties
HTMLVideoElement.mozParsedFramesRead only- Returns an
unsigned longwith the count of video frames that have been parsed from the media resource. HTMLVideoElement.mozDecodedFramesRead only- Returns an
unsigned longwith the count of parsed video frames that have been decoded into images. HTMLVideoElement.mozPresentedFramesRead only- Returns an
unsigned longwith the count of decoded frames that have been presented to the rendering pipeline for painting. HTMLVideoElement.mozPaintedFramesRead only- Returns an
unsigned longwith the count of presented frames which were painted on the screen. HTMLVideoElement.mozFrameDelayRead only- Returns an
doublewith the time which the last painted video frame was late by, in seconds. HTMLVideoElement.mozHasAudioRead only- Returns a
Booleanindicating if there is some audio associated with the video.
Methods
Inherits methods from its parent, HTMLMediaElement, and HTMLElement.
HTMLVideoElement.getVideoPlaybackQuality()- Returns a
VideoPlaybackQualityobjects that contains the current playback metrics.
Specifications
| Specification | Status | Comment |
|---|---|---|
| Media Source Extensions The definition of 'Extensions to HTMLVideoElement' in that specification. |
Recommendation | Added the getVideoPlaybackQuality() method. |
| HTML Living Standard The definition of 'HTMLAreaElement' in that specification. |
Living Standard | No change from HTML5. |
| HTML5 The definition of 'HTMLAreaElement' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | Yes | Yes | 4 | 9 | 10.5 | Yes |
height | Yes | Yes | 4 | 9 | 10.5 | Yes |
poster | Yes | Yes | 4 | 9 | 10.5 | Yes |
videoHeight | Yes | Yes | 4 | 9 | 10.5 | Yes |
videoWidth | Yes | Yes | 4 | 9 | 10.5 | Yes |
width | Yes | Yes | 4 | 9 | 10.5 | Yes |
mozParsedFrames | No | No | 5 | No | No | No |
mozDecodedFrames | No | No | 5 | No | No | No |
mozPresentedFrames | No | No | 5 | No | No | No |
mozPaintedFrames | No | No | 5 | No | No | No |
mozFrameDelay | No | No | 5 | No | No | No |
mozHasAudio | No | No | 15 | No | No | No |
getVideoPlaybackQuality | 23 | Yes | 42 | 113 | 15 | 8 |
| Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
|---|---|---|---|---|---|---|---|
| Basic support | Yes | Yes | Yes | 4 | Yes | Yes | ? |
height | Yes | Yes | Yes | 4 | Yes | Yes | ? |
poster | Yes | Yes | Yes | 4 | Yes | Yes | ? |
videoHeight | Yes | Yes | Yes | 4 | Yes | Yes | ? |
videoWidth | Yes | Yes | Yes | 4 | Yes | Yes | ? |
width | Yes | Yes | Yes | 4 | Yes | Yes | ? |
mozParsedFrames | No | No | No | 5 | No | No | ? |
mozDecodedFrames | No | No | No | 5 | No | No | ? |
mozPresentedFrames | No | No | No | 5 | No | No | ? |
mozPaintedFrames | No | No | No | 5 | No | No | ? |
mozFrameDelay | No | No | No | 5 | No | No | ? |
mozHasAudio | No | No | No | 15 | No | No | ? |
getVideoPlaybackQuality | 33 | ? | Yes | No | 30 | No | ? |
1. Limited support to a whitelist of sites, for example YouTube, Netflix, and other popular streaming sites. The whitelist was removed when Media Source Extensions was enabled by default in Firefox 42.
2. From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
3. Only works on Windows 8+.
See also
- HTML element implementing this interface:
<video>. - Demo of video paint statistics
- Supported media formats