The HTMLVideoElement method getVideoPlaybackQuality() creates and returns a VideoPlaybackQuality object containing metrics including how many frames have been lost.

The data returned can be used to evaluate the quality of the video stream.


videoPQ = videoElement.getVideoPlaybackQuality();

Return value

A VideoPlaybackQuality object providing information about the video element's current playback quality.


This example updates an element to indicate the total number of video frames that have elapsed so far in the playback process. This value includes any dropped or corrupted frames, so it's not the same as "total number of frames played."

var videoElem = document.getElementById("my_vid");
var counterElem = document.getElementById("counter");
var quality = videoElem.getVideoPlaybackQuality();

counterElem.innerText = quality.totalVideoFrames;


Specification Status Comment
Media Playback Quality
The definition of 'HTMLVideoElement.getVideoPlaybackQuality()' in that specification.
Editor's Draft Initial definition.

Browser compatibility

ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Chrome Full support 80Edge Full support 12Firefox Full support 42
Full support 42
No support 25 — 42
Notes Disabled
Notes Limited support to an allowed list of sites, for example YouTube, Netflix, and other popular streaming sites. The limitation was removed when Media Source Extensions was enabled by default in Firefox 42.
Disabled From version 25 until version 42 (exclusive): this feature is behind the media.mediasource.enabled preference. To change preferences in Firefox, visit about:config.
IE Full support 11
Full support 11
Notes Only works on Windows 8+.
Opera Full support 67Safari Full support 8WebView Android Full support 80Chrome Android Full support 80Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No


Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

See also