This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Implemented by the <video> element, 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.
Inherits properties from its parent interface, HTMLMediaElement, and HTMLElement.
HTMLVideoElement.disablePictureInPictureIndicates if the user agent should suggest the picture-in-picture to users, or not.
HTMLVideoElement.heightA string that reflects the height HTML attribute, which specifies the height of the display area, in CSS pixels.
HTMLVideoElement.posterA string that reflects the poster HTML attribute, which specifies an image to show while no video data is available.
HTMLVideoElement.videoHeight Read only
Returns an unsigned integer value indicating the intrinsic height of the resource in CSS pixels, or 0 if no media is available yet.
HTMLVideoElement.videoWidth Read only
Returns an unsigned integer value indicating the intrinsic width of the resource in CSS pixels, or 0 if no media is available yet.
HTMLVideoElement.widthA string that reflects the width HTML attribute, which specifies the width of the display area, in CSS pixels.
HTMLVideoElement.mozParsedFrames Non-standard Read only Deprecated
Returns an unsigned long with the count of video frames that have been parsed from the media resource.
HTMLVideoElement.mozDecodedFrames Non-standard Read only Deprecated
Returns an unsigned long with the count of parsed video frames that have been decoded into images.
HTMLVideoElement.mozPresentedFrames Non-standard Read only Deprecated
Returns an unsigned long with the count of decoded frames that have been presented to the rendering pipeline for painting.
HTMLVideoElement.mozPaintedFrames Non-standard Read only Deprecated
Returns an unsigned long with the count of presented frames which were painted on the screen.
HTMLVideoElement.mozFrameDelay Non-standard Read only Deprecated
Returns an double with the time which the last painted video frame was late by, in seconds.
HTMLVideoElement.mozHasAudio Non-standard Read only Deprecated
Returns a boolean indicating if there is some audio associated with the video.
Inherits methods from its parent interface, HTMLMediaElement, and HTMLElement.
HTMLVideoElement.cancelVideoFrameCallback()Cancels a previously-registered video frame callback (see requestVideoFrameCallback()).
HTMLVideoElement.getVideoPlaybackQuality()Returns a VideoPlaybackQuality object that contains the current playback metrics. This information includes things like the number of dropped or corrupted frames, as well as the total number of frames.
HTMLVideoElement.requestPictureInPicture()Requests that the user agent enters the video into picture-in-picture mode.
HTMLVideoElement.requestVideoFrameCallback()Registers a callback function that runs when a new video frame is sent to the compositor. This enables developers to perform efficient operations on each video frame.
Inherits events from its parent interface, HTMLMediaElement, and HTMLElement.
Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.
enterpictureinpictureFired when the HTMLVideoElement enters picture-in-picture mode successfully.
leavepictureinpictureFired when the HTMLVideoElement leaves picture-in-picture mode successfully.
resizeFires when one or both of the videoWidth and videoHeight properties have just been updated.
| Specification |
|---|
| HTML> # htmlvideoelement> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
HTMLVideoElement |
3 | 12 | 3.5 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
cancelVideoFrameCallback |
83 | 83 | 132 | 69 | 15.4 | 83 | 132 | 59 | 15.4 | 13.0 | 83 | 15.4 |
disablePictureInPicture |
69 | 79 |
122When this property is set totrue, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.116–122["This property is undefined, but still has an effect if set to a value.", "When this property is set totrue, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP."] |
56 | 13.1 | 105 |
122When this property is set totrue, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.116–122["This property is undefined, but still has an effect if set to a value.", "When this property is set totrue, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP."] |
72 | 13.4 | 20.0 | No | 13.4 |
enterpictureinpicture_event |
69 | 79 | No | 56 | 13.1 | 105 | No | 72 | 13.4 | 20.0 | No | 13.4 |
getVideoPlaybackQuality |
80 | 12 | 42 | 67 | 8 | 80 | 42 | 57 | 12.2 | 13.0 | 80 | 12.2 |
height |
3 | 12 | 3.5 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
leavepictureinpicture_event |
69 | 79 | No | 56 | 13.1 | 105 | No | 72 | 13.4 | 20.0 | No | 13.4 |
mozDecodedFrames |
No | No | 5 | No | No | No | 5 | No | No | No | No | No |
mozFrameDelay |
No | No | 5 | No | No | No | 5 | No | No | No | No | No |
mozHasAudio |
No | No | 15 | No | No | No | 15 | No | No | No | No | No |
mozPaintedFrames |
No | No | 5 | No | No | No | 5 | No | No | No | No | No |
mozParsedFrames |
No | No | 5 | No | No | No | 5 | No | No | No | No | No |
mozPresentedFrames |
No | No | 5 | No | No | No | 5 | No | No | No | No | No |
playsInline |
75 | 79 | No | 62 | 10 | 75 | No | 54 | 10 | 11.0 | 75 | 10 |
poster |
3 | 12 | 3.6 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
requestPictureInPicture |
69 | 79 | No | 56 | 13.1 | 105 | No | 72 | 13.4 | 20.0 | No | 13.4 |
requestVideoFrameCallback |
83 | 83 | 132 | 69 | 15.4 | 83 | 132 | 59 | 15.4 | 13.0 | 83 | 15.4 |
resize_event |
3 | 7912–79Theonresize event handler property is not supported. |
3.5 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
videoHeight |
3 | 12 | 3.5 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
videoWidth |
3 | 12 | 3.5 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
width |
3 | 12 | 3.5 | 10.5 | 3.1 | 18 | 4 | 11 | 3 | 1.0 | 4.4 | 3 |
<video>.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement