Comparison of layout engines (HTML5 media)
Lua error in package.lua at line 80: module 'strict' not found. The HTML5 draft specification defines several tags which allow video and audio to be included natively and semantically in HTML markup. This page compares support for aspects of this specification among layout engines.
Contents
Explanation of the tables
Engine nomenclature
Rather than the names of web browsers, the names of the underlying engines are used. The browsers that use the various engines are listed below.
Layout engine | Release version | Preview version | Used by |
---|---|---|---|
Amaya | 11.4.7[1] | N/A | No longer developed; Amaya |
Blink | 537.36 | source code[note 1] | Chromium/Chrome (28+), Opera (15+), Yandex, Liebao and Samsung Browser[citation needed]. |
EdgeHTML | 13.10586 [2] | N/A | Microsoft Edge, Universal Windows Platform (UWP) JavaScript apps |
Gecko | 43.0.4 (January 6, 2016[3]) [±]
|
44.0 Beta 8 (January 12, 2016[5][6]) [±]
45.0a2 (December 18, 2015[7]) [±] daily release
|
All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock (up to 2.x); Debian IceWeasel; GNU IceCat (formerly GNU IceWeasel); Cyberfox; Icedove, Iceape and Iceowl; Firefox for mobile ("Fennec"). Also used by the Maple platform in 2010 and 2011 Samsung "SmartTV" devices which are based on the build used in Firefox 3.0.[citation needed] Nokia Asha platform is also using Gecko for web apps rendering. |
KHTML | 4.12.3[9] | N/A | Konqueror[note 2] |
Presto | 2.12.388 | N/A | No longer developed; Opera and Opera Mobile use Blink now; Nintendo DS & DSi Browser; Internet Channel |
Tasman | (IE 5.2.3 for Mac) | N/A | No longer developed (aborted in 2003); Internet Explorer 5+ for Mac OS X |
Trident | 7.0 (IE 11) | N/A | Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 8 |
WebKit | 534.20 | nightly build[note 3] | Tizen (both OS and browser), Safari (both desktop and mobile), Google Chrome (before 28), Maxthon 3, Shiira, iCab 4, OmniWeb 5.5+, Web, Adobe AIR, Midori, Adobe Dreamweaver CS4 and CS5, Android browser, Palm webOS browser, Symbian S60 browser, OWB, Steam, Rekonq, Arora, Flock (version 3+), RockMelt, Dolphin Browser, Sleipnir, Konqueror[note 2]. Used by the LG Smart TV platform to enable web content on TVs. |
Values
Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given) in the specified version. Version numbers without any other value indicate the version at which the layout engine first fully supported the feature.
Value | Meaning |
---|---|
Yes | Indicates that the layout engine fully supports this property/element when valid values are used. |
No | Indicates that the property/element is completely ignored. |
Partial | Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly. |
Incorrect | Indicates that the property/element is understood, but that it is not implemented correctly in all cases. |
Experimental | Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy. |
Dropped | Indicates that the property/element is no longer supported. |
Nightly build | Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected. |
Depends | Indicates that the property/element is supported only on certain platforms, or if certain settings are configured. |
Element attributes
Media elements allow some attributes to be set directly in the tag.
Trident | Gecko | WebKit | Presto | |
---|---|---|---|---|
<audio> attributes |
||||
src |
5.0[t 1] | 1.9.1 | 525 | 2.5 |
preload |
2.0[note 1][g 1] | Experimental[note 1] | ||
autoplay |
1.9.1 | 2.5 | ||
loop |
11.0[g 2] | |||
controls |
1.9.1 | |||
<video> attributes |
||||
src |
5.0[t 1] | 1.9.1 | 525 | 2.5 |
preload |
2.0[note 1][g 1] | Experimental[note 1] | ||
autoplay |
1.9.1 | 2.5 | ||
loop |
11.0[g 2] | |||
controls |
1.9.1 | |||
poster |
1.9.2[g 3] | |||
width |
1.9.1 | |||
height |
||||
<source> attributes |
||||
src |
5.0[t 1] | 1.9.1 | 525[w 1] | 2.5 |
type |
||||
media |
15.0[g 4] | |||
<track> attributes |
||||
kind |
6.0[t 2] | 24.0[g 5] | Yes[w 2] | No |
label |
||||
src |
||||
srclang |
DOM attributes
Some attributes related to media elements are exposed in the DOM.
Trident | Gecko | WebKit | Presto[p 1] | |
---|---|---|---|---|
Error state | ||||
MediaError |
5.0 [t 3] | 1.9.1 | ? | 2.5 |
Network state | ||||
src |
5.0[t 1] | 1.9.1 | ? | 2.5 |
currentSrc |
||||
networkState |
||||
preload |
2.0[note 1][g 1] | No | ||
buffered |
2.0[g 6] | |||
load() |
1.9.1 | 2.5 | ||
canPlayType() |
533[w 3] | |||
Ready state | ||||
readyState |
5.0[t 1] | 1.9.1 | ? | 2.5 |
seeking |
||||
Playback state | ||||
currentTime |
5.0[t 1] | 1.9.1 | ? | 2.5 |
startTime |
No | |||
duration |
1.9.1 | |||
paused |
||||
defaultPlaybackRate |
20.0[g 7] | No | ||
playbackRate |
||||
played |
15.0[g 8] | |||
seekable |
8.0[g 9] | |||
ended |
1.9.1 | 2.5 | ||
autoplay |
||||
loop |
11.0[g 2] | |||
play() |
1.9.1 | |||
pause() |
||||
Controls | ||||
controls |
5.0[t 1] | 1.9.1 | ? | 2.5 |
volume |
||||
muted |
DOM events
Media elements introduce new events to handle conditions which apply only to those elements, such as pausing/resuming.
Trident | Gecko[g 10] | WebKit | Presto | |
---|---|---|---|---|
loadstart |
5.0[t 4] | 1.9.1 | ? | ? |
progress |
||||
suspend |
1.9.2 | |||
abort |
1.9.1 | |||
error |
||||
emptied |
||||
stalled |
8.0[g 11] | |||
play |
1.9.1 | |||
pause |
||||
loadedmetadata |
||||
loadeddata |
||||
waiting |
||||
playing |
No | |||
canplay |
1.9.1 | |||
canplaythrough |
||||
seeking |
||||
seeked |
||||
timeupdate |
||||
ended |
||||
ratechange |
||||
durationchange |
||||
volumechange |
Video format support
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
This table documents support for video codecs by the <video>
element.
Trident | Gecko | WebKit | Presto | |
---|---|---|---|---|
Ogg Theora | Manual install[note 2] | 1.9.1[g 12] | Depends[note 3] | 2.5 |
H.264 | 5.0[t 6] | 33.0[10][g 13] | Depends (525)[note 3][w 9] | Depends[note 4] |
WebM VP8 | Manual install[note 2] | 2.0[g 14][g 15] | Depends (534)[w 10] | 2.6.30[p 3][p 4][p 5] |
Audio format support
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
This table documents support for audio codecs by the <audio>
element.
Trident | Gecko | WebKit | Presto | |
---|---|---|---|---|
Ogg Vorbis | Manual install[note 2] | 1.9.1[g 12] | Depends[note 3] | 2.5 |
WAV PCM | 525[note 3] | 2.0 | ||
MP3 | 5.0[t 7] | No[g 16] | Depends[note 4] | |
AAC | No | |||
Speex | Manual install[note 2] | No[g 17] | Depends[note 3] | No |
Opus | In IE 12 ?? [g 18] | 15.0[g 19] | Depends[note 3] | No |
See also
Notes
- ↑ 1.0 1.1 1.2 1.3 1.4 Supports
preload
under the older nameautobuffer
. - ↑ 2.0 2.1 2.2 2.3 Google released a WebM component for Media Foundation to allow the playback of WebM files in IE9 through the standard HTML5 <video> tag.[t 5] Xiph.org distributes OpenCodecs package, which amends Google's VP8 decoder with DirectShow-based codecs for Ogg Theora and Ogg Vorbis. VLC media player comes with "Web plugin" that uses VLC for playing multimedia from
<video>
and<audio>
tags, enabling support for all formats VLC supports. - ↑ 3.0 3.1 3.2 3.3 3.4 3.5 WebKit on Mac OS X uses QuickTime, and supports whatever formats that does.[w 4] By default, this includes H.264, MP3, AAC and WAV PCM, but not Ogg Theora or Vorbis. These are supported only if installed as third-party codecs, such as XiphQT. Google Chrome supports Theora, Vorbis, WebM, and MP3.[w 5] Chromium can be compiled to support anything that FFmpeg supports, and may or may not support patented formats such as H.264 and MP3.[w 6] Origyn Web Browser for MorphOS uses also FFmpeg for playing HTML5 media content.[w 7][w 8]
- ↑ 4.0 4.1 On Linux and FreeBSD, Presto 2.5 uses the system version of the GStreamer library, and is able to play any formats supported by GStreamer (including H.264, MP3, AAC and others, if codecs are installed). On other platforms, it only supports Ogg Theora for video; and Ogg Vorbis and WAVE PCM for sound.[p 2]
References
- ↑ Amaya Binary Releases, Most recent download link in stable
- ↑ Change log between EdgeHTML 12.10240 and 13.10586
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Download for kdelibs, Most recent download link in stable
- ↑ via OpenH264
Trident references
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
Gecko references
- ↑ 1.0 1.1 1.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 2.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 12.0 12.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
WebKit references
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
Presto references
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.