A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on IRC (such as one of these permanent autoconfirmed members).

Difference between revisions of "Video type parameters"

From WHATWG Wiki
Jump to: navigation, search
(Browser Support: wow, it's a mess!)
(Various updates)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The <code><nowiki><video></nowiki></code> element allows UA capability-based fallback with multiple alternative video resources designated by multiple <code><nowiki><source></nowiki></code> elements. The UA is expected to pick the alternative it tries to play by comparing the information given in the <code><nowiki>type</nowiki></code> attribute against its knowledge about its own playback capabilities.
+
The <code>&lt;video></code> element allows UA capability-based fallback with multiple alternative video resources designated by multiple <code>&lt;source></code> elements. The UA is expected to pick the alternative it tries to play by comparing the information given in the <code>type</code> attribute against its knowledge about its own playback capabilities. The same information is also exposed to scripts via the <code>canPlayType</code> function.
  
 
The main media type designates the container format. In general, it does not say anything about codecs needed to decode the streams packaged in the container. [http://www.ietf.org/rfc/rfc4281.txt RFC 4281] defines a <code>codecs</code> MIME parameter for indicating which codecs are used within the container. The parameter takes a double-quoted comma-separated list of codec identifiers. For example, the MIME type for MPEG-4 Simple Profile Level 0 video and AMR audio in a 3GPP container (.3gp) is <code>video/3gpp; codecs="mp4v.20.9,samr"</code>.
 
The main media type designates the container format. In general, it does not say anything about codecs needed to decode the streams packaged in the container. [http://www.ietf.org/rfc/rfc4281.txt RFC 4281] defines a <code>codecs</code> MIME parameter for indicating which codecs are used within the container. The parameter takes a double-quoted comma-separated list of codec identifiers. For example, the MIME type for MPEG-4 Simple Profile Level 0 video and AMR audio in a 3GPP container (.3gp) is <code>video/3gpp; codecs="mp4v.20.9,samr"</code>.
  
The following list is organized by container.
+
The following list is organized by container, including only types that at least one browser supports.
  
 
== Ogg ==
 
== Ogg ==
MIME types: <code>application/ogg</code> ([http://www.rfc-editor.org/rfc/rfc3534.txt RFC 3534]), <code>audio/ogg</code>, <code>video/ogg</code> ([http://www.ietf.org/rfc/rfc5334.txt RFC 5334])
+
MIME types: <code>application/ogg</code>, <code>audio/ogg</code>, <code>video/ogg</code><ref>[https://tools.ietf.org/html/rfc5334 RFC 5334 Ogg Media Types]</ref>
  
 
Filename extension: <code>.ogg</code>, <code>.oga</code>, <code>.ogv</code>
 
Filename extension: <code>.ogg</code>, <code>.oga</code>, <code>.ogv</code>
Line 22: Line 22:
 
* Speex: <code>speex</code>
 
* Speex: <code>speex</code>
 
* FLAC: <code>flac</code>
 
* FLAC: <code>flac</code>
 +
* Opus: <code>opus</code><ref>[https://tools.ietf.org/html/rfc7845#section-9 RFC 7845 Ogg Encapsulation for the Opus Audio Codec § Content Type]</ref>
  
== Matroska ==
 
Main MIME type: <code>video/x-matroska</code>
 
  
Filename extension: <code>.mkv</code>
+
== WebM ==
 +
MIME types: <code>audio/webm</code>, <code>video/webm</code>
 +
 
 +
Filename extension: <code>.webm</code>
  
 
=== Video Codecs ===
 
=== Video Codecs ===
  
* Theora: ''unknown''
+
* VP8: <code>vp8</code>, <code>vp8.0</code> (these exact strings, not e.g. <code>vp8.</code> or <code>vp8.00</code>)
* Dirac: ''unknown''
 
  
 
=== Audio Codecs ===
 
=== Audio Codecs ===
  
* Vorbis: ''unknown''
+
* Vorbis: <code>vorbis</code>
 +
* Opus: <code>opus</code>
  
 
== MPEG ==
 
== MPEG ==
MIME types: <code>audio/mpeg</code> ([http://www.rfc-editor.org/rfc/rfc3003.txt RFC 3003]), <code>video/mpeg</code> ([http://www.rfc-editor.org/rfc/rfc2046.txt RFC 2046])
+
MIME types: <code>audio/mpeg</code><ref>[https://tools.ietf.org/html/rfc3003 RFC 3003 The audio/mpeg Media Type]</ref>, <code>video/mpeg</code><ref>[https://tools.ietf.org/html/rfc2046 RFC 2046 Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types]</ref>
  
 
Filename extension: <code>.mp1</code>, <code>.mp2</code>, <code>.mp3</code>, <code>.mpg</code>, <code>.mpeg</code>
 
Filename extension: <code>.mp1</code>, <code>.mp2</code>, <code>.mp3</code>, <code>.mpg</code>, <code>.mpeg</code>
Line 45: Line 47:
  
 
== MPEG-4 ==
 
== MPEG-4 ==
Main MIME type: <code>video/mp4</code> ([http://www.rfc-editor.org/rfc/rfc4337.txt RFC 4337])
+
MIME types: <code>audio/mp4</code>, <code>video/mp4</code><ref>[https://tools.ietf.org/html/rfc4337 RFC 4337 MIME Type Registration for MPEG-4]</ref>
  
 
Filename extension: <code>.mp4</code>
 
Filename extension: <code>.mp4</code>
Line 56: Line 58:
 
* MPEG-4 Visual Simple Profile Level 0: <code>mp4v.20.9</code>
 
* MPEG-4 Visual Simple Profile Level 0: <code>mp4v.20.9</code>
 
* MPEG-4 Visual Advanced Simple Profile Level 0: <code>mp4v.20.240</code>
 
* MPEG-4 Visual Advanced Simple Profile Level 0: <code>mp4v.20.240</code>
 +
* AV1 8-bit Main Profile Level 3.0: <code>av01.0.04M.08</code><ref name="av1codecsparams">[https://aomediacodec.github.io/av1-isobmff/#codecsparam AV1 Codec ISO Media File Format Binding § Codecs Parameter String]</ref>
 +
* AV1 10-bit Main Profile Level 3.0: <code>av01.0.04M.10</code><ref name="av1codecsparams" />
  
 
=== Audio Codecs ===
 
=== Audio Codecs ===
  
 
* Low-Complexity AAC: <code>mp4a.40.2</code>
 
* Low-Complexity AAC: <code>mp4a.40.2</code>
 +
* High-Efficiency AAC: <code>mp4a.40.5</code>
 +
* Opus: <code>opus</code>
  
 
== 3GPP ==
 
== 3GPP ==
Main MIME type: <code>video/3gpp</code> ([http://www.rfc-editor.org/rfc/rfc3839.txt RFC 3839])
+
Main MIME type: <code>video/3gpp</code><ref>[https://tools.ietf.org/html/rfc3839 RFC 3839 MIME Type Registrations for 3rd Generation Partnership Project (3GPP) Multimedia files]</ref>
  
 
Filename extension: <code>.3gp</code>
 
Filename extension: <code>.3gp</code>
Line 73: Line 79:
  
 
* Low-Complexity AAC: <code>mp4a.40.2</code>
 
* Low-Complexity AAC: <code>mp4a.40.2</code>
 +
* High-Efficiency AAC: <code>mp4a.40.5</code>
 
* AMR: <code>samr</code>
 
* AMR: <code>samr</code>
  
== ASF ==
+
== WAVE ==
Main MIME type: <code>video/x-ms-wmv</code>
+
MIME types: <code>audio/wave</code>, <code>audio/wav</code>, <code>audio/x-wav</code>
  
Filename extension: <code>.wmv</code>
+
Filename extension: <code>.wav</code>
 
 
=== Video Codecs ===
 
 
 
* Windows Media Video 8 (4CC: WMV2): ''unknown''
 
* Windows Media Video 9 / VC-1 Main (4CC: WMV3): ''unknown''
 
* Windows Media Video 9 Advanced / VC-1 Advanced (4CC: WVC1): ''unknown''
 
  
 
=== Audio Codecs ===
 
=== Audio Codecs ===
 
* Windows Media Audio 2: ''unknown''
 
* Windows Media Audio 10 Professional: ''unknown''
 
 
== Real Media ==
 
Main MIME type: <code>application/vnd.rn-realmedia</code>
 
 
Filename extension: <code>.rm</code>
 
 
''Is this single-vendor format even relevant here?''
 
 
== WAVE ==
 
Main MIME type: <code>audio/x-wav</code>
 
 
Filename extension: <code>.wav</code>
 
  
 
[http://www.rfc-editor.org/rfc/rfc2361.txt RFC 2361] lists parameters to be used on the form <code>audio/vnd.wave;codec=x</code>. These are also used for the <code>codecs</code> parameter.
 
[http://www.rfc-editor.org/rfc/rfc2361.txt RFC 2361] lists parameters to be used on the form <code>audio/vnd.wave;codec=x</code>. These are also used for the <code>codecs</code> parameter.
Line 111: Line 97:
 
<!--
 
<!--
  
Generated with http://software.hixie.ch/utilities/js/live-dom-viewer/saved/786
+
Generated with https://software.hixie.ch/utilities/js/live-dom-viewer/saved/8376
  
 
Save the mime types into types.txt and the results for each browser in *.txt, produce the table (sans header) with:
 
Save the mime types into types.txt and the results for each browser in *.txt, produce the table (sans header) with:
  
$ paste types.txt opera.txt firefox.txt chromium.txt safari.txt ie.txt | awk -F\\t '{printf "| <code>%s</code>\n| %s\n| %s\n| %s\n|-\n", $1, $2, $3, $4}' | sed 's/| ""/| style="background:LightPink" | ""/;s/| "no"/| style="background:LightPink" | "no"/;s/| "maybe"/| style="background:SkyBlue" | "maybe"/;s/| "probably"/| style="background:GreenYellow" | "probably"/'
+
$ paste types.txt chromium.txt firefox.txt safari.txt | awk -F\\t '{printf "| <code>%s</code>\n| %s\n| %s\n| %s\n|-\n", $1, $2, $3, $4}' | sed 's/| ""/| style="text-align:center; background:LightPink" | ""/;s/| "no"/| style="text-align:center; background:LightPink" | "no"/;s/| "maybe"/| style="text-align:center; background:SkyBlue" | "maybe"/;s/| "probably"/| style="text-align:center; background:GreenYellow" | "probably"/'
  
 
-->
 
-->
  
{| style="text-align:center"
+
{|
 +
|-
 
! MIME
 
! MIME
! width="100" | Opera 11 <!-- Opera/9.80 (X11; Linux i686; U; en) Presto/2.7.62 Version/11.00 -->
+
! scope="col" style="text-align:center" width="100" | Chromium 84 <!-- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36  -->
! width="100" | Firefox 4 <!-- Mozilla/5.0 (X11; Linux i686; rv:2.0b9) Gecko/20100101 Firefox/4.0b9 -->
+
! scope="col" style="text-align:center" width="100" | Firefox 79 <!-- Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0 -->
! width="100" | Chromium 9 <!-- Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.595.0 Safari/534.13  -->
+
! scope="col" style="text-align:center" width="100" | Safari 13 <!-- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15 -->
! width="100" | Safari 5 <!-- Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4 -->
 
! width="100" | IE 9 <!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) -->
 
 
|-
 
|-
 
| <code>application/ogg</code>
 
| <code>application/ogg</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>application/ogg; codecs=bogus</code>
 
| <code>application/ogg; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>application/mp4</code>
 
| <code>application/mp4</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>application/mp4; codecs=bogus</code>
 
| <code>application/mp4; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>application/octet-stream</code>
 
| <code>application/octet-stream</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:SkyBlue" | "maybe"
 
 
|-
 
|-
 
| <code>application/octet-stream; codecs=bogus</code>
 
| <code>application/octet-stream; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/3gpp</code>
 
| <code>audio/3gpp</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/3gpp2</code>
 
| <code>audio/3gpp2</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/aac</code>
 
| <code>audio/aac</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-aac</code>
 
| <code>audio/x-aac</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/aiff</code>
 
| <code>audio/aiff</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-aiff</code>
 
| <code>audio/x-aiff</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/ac3</code>
 
| <code>audio/ac3</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-ac3</code>
 
| <code>audio/x-ac3</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/basic</code>
 
| <code>audio/basic</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/flac</code>
 
| <code>audio/flac</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-flac</code>
 
| <code>audio/x-flac</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/mid</code>
 
| <code>audio/mid</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/midi</code>
 
| <code>audio/midi</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-midi</code>
 
| <code>audio/x-midi</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/mpeg</code>
 
| <code>audio/mpeg</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:SkyBlue" | "maybe"
 
 
|-
 
|-
 
| <code>audio/x-mpeg</code>
 
| <code>audio/x-mpeg</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/mpegurl</code>
 
| <code>audio/mpegurl</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-mpegurl</code>
 
| <code>audio/x-mpegurl</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/mp4</code>
 
| <code>audio/mp4</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:SkyBlue" | "maybe"
 
 
|-
 
|-
 
| <code>audio/mp4; codecs=bogus</code>
 
| <code>audio/mp4; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/ogg</code>
 
| <code>audio/ogg</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/ogg; codecs=bogus</code>
 
| <code>audio/ogg; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wav</code>
 
| <code>audio/wav</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wav; codecs=0</code>
 
| <code>audio/wav; codecs=0</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wav; codecs=1</code>
 
| <code>audio/wav; codecs=1</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wav; codecs=2</code>
 
| <code>audio/wav; codecs=2</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wave</code>
 
| <code>audio/wave</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wave; codecs=0</code>
 
| <code>audio/wave; codecs=0</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wave; codecs=1</code>
 
| <code>audio/wave; codecs=1</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/wave; codecs=2</code>
 
| <code>audio/wave; codecs=2</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-wav</code>
 
| <code>audio/x-wav</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-wav; codecs=0</code>
 
| <code>audio/x-wav; codecs=0</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-wav; codecs=1</code>
 
| <code>audio/x-wav; codecs=1</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-wav; codecs=2</code>
 
| <code>audio/x-wav; codecs=2</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-pn-wav</code>
 
| <code>audio/x-pn-wav</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-pn-wav; codecs=0</code>
 
| <code>audio/x-pn-wav; codecs=0</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-pn-wav; codecs=1</code>
 
| <code>audio/x-pn-wav; codecs=1</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/x-pn-wav; codecs=2</code>
 
| <code>audio/x-pn-wav; codecs=2</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/3gpp</code>
 
| <code>video/3gpp</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/3gpp2</code>
 
| <code>video/3gpp2</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/avi</code>
 
| <code>video/avi</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/mpeg</code>
 
| <code>video/mpeg</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/x-mpeg</code>
 
| <code>video/x-mpeg</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/mp4</code>
 
| <code>video/mp4</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:SkyBlue" | "maybe"
 
 
|-
 
|-
 
| <code>video/mp4; codecs=bogus</code>
 
| <code>video/mp4; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/msvideo</code>
 
| <code>video/msvideo</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/x-msvideo</code>
 
| <code>video/x-msvideo</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/quicktime</code>
 
| <code>video/quicktime</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:LightPink" | ""
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/ogg</code>
 
| <code>video/ogg</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/ogg; codecs=bogus</code>
 
| <code>video/ogg; codecs=bogus</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/mp4; codecs="avc1.42E01E, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="avc1.42E01E, mp4a.40.2"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
 
| style="background:GreenYellow" | "probably"
 
 
|-
 
|-
 
| <code>video/mp4; codecs="avc1.58A01E, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="avc1.58A01E, mp4a.40.2"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
 
| style="background:GreenYellow" | "probably"
 
 
|-
 
|-
 
| <code>video/mp4; codecs="avc1.4D401E, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="avc1.4D401E, mp4a.40.2"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
 
| style="background:GreenYellow" | "probably"
 
 
|-
 
|-
 
| <code>video/mp4; codecs="avc1.64001E, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="avc1.64001E, mp4a.40.2"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
 
| style="background:GreenYellow" | "probably"
 
 
|-
 
|-
 
| <code>video/mp4; codecs="mp4v.20.8, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="mp4v.20.8, mp4a.40.2"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/mp4; codecs="mp4v.20.240, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="mp4v.20.240, mp4a.40.2"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
|-
| style="background:LightPink" | ""
+
| <code>video/mp4; codecs="avc1.64001E, mp4a.40.2"</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>video/mp4; codecs="mp4v.20.8, mp4a.40.2"</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>video/mp4; codecs=hev1</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>video/mp4; codecs=hev1.1.6.L93.B0</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>video/mp4; codecs=hvc1</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>video/mp4; codecs=hvc1.1.6.L93.B0</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>video/mp4; codecs=av01</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>video/mp4; codecs=av01.0.04M.08</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>video/mp4; codecs="av01.0.04M.08, mp4a.40.2"</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>video/mp4; codecs="av01.0.04M.08, opus"</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>audio/mp4; codecs=mp4a.40.2</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>audio/mp4; codecs=mp4a.40.02</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>audio/mp4; codecs=mp4a.40.5</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>audio/mp4; codecs=mp4a.40.05</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>audio/mp4; codecs=mp4a.40.29</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
|-
 +
| <code>audio/mp4; codecs=mp4a.40.42</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 +
|-
 +
| <code>audio/mp4; codecs=opus</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:SkyBlue" | "maybe"
 
|-
 
|-
 
| <code>video/3gpp; codecs="mp4v.20.8, samr"</code>
 
| <code>video/3gpp; codecs="mp4v.20.8, samr"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/ogg; codecs="theora, vorbis"</code>
 
| <code>video/ogg; codecs="theora, vorbis"</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/ogg; codecs="theora, speex"</code>
 
| <code>video/ogg; codecs="theora, speex"</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/ogg; codecs=vorbis</code>
 
| <code>audio/ogg; codecs=vorbis</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/ogg; codecs=speex</code>
 
| <code>audio/ogg; codecs=speex</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/ogg; codecs=flac</code>
 
| <code>audio/ogg; codecs=flac</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:LightPink" | ""
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
|-
| style="background:LightPink" | ""
+
| <code>audio/ogg; codecs=opus</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:LightPink" | ""
 
|-
 
|-
 
| <code>video/ogg; codecs="dirac, vorbis"</code>
 
| <code>video/ogg; codecs="dirac, vorbis"</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/x-matroska; codecs="theora, vorbis"</code>
 
| <code>video/x-matroska; codecs="theora, vorbis"</code>
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/webm</code>
 
| <code>audio/webm</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>audio/webm; codecs=vorbis</code>
 
| <code>audio/webm; codecs=vorbis</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/webm</code>
 
| <code>video/webm</code>
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:SkyBlue" | "maybe"
| style="background:SkyBlue" | "maybe"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/webm; codecs=vorbis</code>
 
| <code>video/webm; codecs=vorbis</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/webm; codecs=vp8</code>
 
| <code>video/webm; codecs=vp8</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/webm; codecs=vp8.0</code>
 
| <code>video/webm; codecs=vp8.0</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
 
| style="background:LightPink" | ""
 
 
|-
 
|-
 
| <code>video/webm; codecs="vp8, vorbis"</code>
 
| <code>video/webm; codecs="vp8, vorbis"</code>
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:GreenYellow" | "probably"
| style="background:GreenYellow" | "probably"
+
| style="text-align:center; background:LightPink" | ""
| style="background:LightPink" | ""
+
|-
| style="background:LightPink" | ""
+
| <code>video/webm; codecs=vp9</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs=vp9.0</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs=vp09</code>
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
| style="text-align:center; background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs=vp09.00.10.08</code>
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:GreenYellow" | "probably"
 +
| style="text-align:center; background:LightPink" | ""
 
|-
 
|-
 
|}
 
|}
Line 677: Line 618:
 
* [http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types mime.types in Apache] (trunk)
 
* [http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types mime.types in Apache] (trunk)
 
* [http://technet.microsoft.com/en-us/library/bb742440.aspx#ECAA MIME types in IIS] (is there a newer one?)
 
* [http://technet.microsoft.com/en-us/library/bb742440.aspx#ECAA MIME types in IIS] (is there a newer one?)
 +
 +
== References ==
 +
 +
<references />
 +
 +
[[Category:Registries]]

Latest revision as of 05:19, 25 August 2020

The <video> element allows UA capability-based fallback with multiple alternative video resources designated by multiple <source> elements. The UA is expected to pick the alternative it tries to play by comparing the information given in the type attribute against its knowledge about its own playback capabilities. The same information is also exposed to scripts via the canPlayType function.

The main media type designates the container format. In general, it does not say anything about codecs needed to decode the streams packaged in the container. RFC 4281 defines a codecs MIME parameter for indicating which codecs are used within the container. The parameter takes a double-quoted comma-separated list of codec identifiers. For example, the MIME type for MPEG-4 Simple Profile Level 0 video and AMR audio in a 3GPP container (.3gp) is video/3gpp; codecs="mp4v.20.9,samr".

The following list is organized by container, including only types that at least one browser supports.

Ogg

MIME types: application/ogg, audio/ogg, video/ogg[1]

Filename extension: .ogg, .oga, .ogv

This is not the complete set of codecs from RFC 5334. See also http://wiki.xiph.org/index.php/MIMETypesCodecs

Video Codecs

  • Theora: theora
  • Dirac: dirac

Audio Codecs

  • Vorbis: vorbis
  • Speex: speex
  • FLAC: flac
  • Opus: opus[2]


WebM

MIME types: audio/webm, video/webm

Filename extension: .webm

Video Codecs

  • VP8: vp8, vp8.0 (these exact strings, not e.g. vp8. or vp8.00)

Audio Codecs

  • Vorbis: vorbis
  • Opus: opus

MPEG

MIME types: audio/mpeg[3], video/mpeg[4]

Filename extension: .mp1, .mp2, .mp3, .mpg, .mpeg

There are no registered codecs parameters.

MPEG-4

MIME types: audio/mp4, video/mp4[5]

Filename extension: .mp4

Video Codecs

  • H.264 Baseline: avc1.42E0xx, where xx is the AVC level
  • H.264 Main: avc1.4D40xx, where xx is the AVC level
  • H.264 High: avc1.6400xx, where xx is the AVC level
  • MPEG-4 Visual Simple Profile Level 0: mp4v.20.9
  • MPEG-4 Visual Advanced Simple Profile Level 0: mp4v.20.240
  • AV1 8-bit Main Profile Level 3.0: av01.0.04M.08[6]
  • AV1 10-bit Main Profile Level 3.0: av01.0.04M.10[6]

Audio Codecs

  • Low-Complexity AAC: mp4a.40.2
  • High-Efficiency AAC: mp4a.40.5
  • Opus: opus

3GPP

Main MIME type: video/3gpp[7]

Filename extension: .3gp

Video Codecs

  • MPEG-4 Visual Simple Profile Level 0: mp4v.20.9

Audio Codecs

  • Low-Complexity AAC: mp4a.40.2
  • High-Efficiency AAC: mp4a.40.5
  • AMR: samr

WAVE

MIME types: audio/wave, audio/wav, audio/x-wav

Filename extension: .wav

Audio Codecs

RFC 2361 lists parameters to be used on the form audio/vnd.wave;codec=x. These are also used for the codecs parameter.

Browser Support

The table below lists the results of canPlayType(type) for different browsers. It does not necessary relate to what the browsers actually can play.


MIME Chromium 84 Firefox 79 Safari 13
application/ogg "maybe" "maybe" ""
application/ogg; codecs=bogus "" "" ""
application/mp4 "" "" "maybe"
application/mp4; codecs=bogus "" "" "maybe"
application/octet-stream "" "" ""
application/octet-stream; codecs=bogus "" "" ""
audio/3gpp "" "" "maybe"
audio/3gpp2 "" "" "maybe"
audio/aac "probably" "maybe" "maybe"
audio/x-aac "" "maybe" "maybe"
audio/aiff "" "" "maybe"
audio/x-aiff "" "" "maybe"
audio/ac3 "" "" ""
audio/x-ac3 "" "" ""
audio/basic "" "" "maybe"
audio/flac "probably" "maybe" "maybe"
audio/x-flac "" "maybe" ""
audio/mid "" "" ""
audio/midi "" "" ""
audio/x-midi "" "" ""
audio/mpeg "probably" "maybe" "maybe"
audio/x-mpeg "" "" "maybe"
audio/mpegurl "" "" "maybe"
audio/x-mpegurl "" "" "maybe"
audio/mp4 "maybe" "maybe" "maybe"
audio/mp4; codecs=bogus "" "" "maybe"
audio/ogg "maybe" "maybe" ""
audio/ogg; codecs=bogus "" "" ""
audio/wav "maybe" "maybe" "maybe"
audio/wav; codecs=0 "" "" "maybe"
audio/wav; codecs=1 "probably" "probably" "maybe"
audio/wav; codecs=2 "" "" "maybe"
audio/wave "" "maybe" "maybe"
audio/wave; codecs=0 "" "" "maybe"
audio/wave; codecs=1 "" "probably" "maybe"
audio/wave; codecs=2 "" "" "maybe"
audio/x-wav "maybe" "maybe" "maybe"
audio/x-wav; codecs=0 "" "" "maybe"
audio/x-wav; codecs=1 "probably" "probably" "maybe"
audio/x-wav; codecs=2 "" "" "maybe"
audio/x-pn-wav "" "maybe" ""
audio/x-pn-wav; codecs=0 "" "" ""
audio/x-pn-wav; codecs=1 "" "probably" ""
audio/x-pn-wav; codecs=2 "" "" ""
video/3gpp "maybe" "" "maybe"
video/3gpp2 "" "" "maybe"
video/avi "" "" "maybe"
video/mpeg "" "" "maybe"
video/x-mpeg "" "" "maybe"
video/mp4 "maybe" "maybe" "maybe"
video/mp4; codecs=bogus "" "" "maybe"
video/msvideo "" "" ""
video/x-msvideo "" "" ""
video/quicktime "" "maybe" "maybe"
video/ogg "maybe" "maybe" ""
video/ogg; codecs=bogus "" "" ""
video/mp4; codecs="avc1.42E01E, mp4a.40.2" "probably" "probably" "probably"
video/mp4; codecs="avc1.58A01E, mp4a.40.2" "probably" "probably" "probably"
video/mp4; codecs="avc1.4D401E, mp4a.40.2" "probably" "probably" "probably"
video/mp4; codecs="avc1.64001E, mp4a.40.2" "probably" "probably" "probably"
video/mp4; codecs="mp4v.20.8, mp4a.40.2" "" "" "probably"
video/mp4; codecs="mp4v.20.240, mp4a.40.2" "" "" "probably"
video/mp4; codecs="avc1.64001E, mp4a.40.2" "probably" "probably" "probably"
video/mp4; codecs="mp4v.20.8, mp4a.40.2" "" "" "probably"
video/mp4; codecs=hev1 "" "" "maybe"
video/mp4; codecs=hev1.1.6.L93.B0 "" "" "maybe"
video/mp4; codecs=hvc1 "" "" "probably"
video/mp4; codecs=hvc1.1.6.L93.B0 "" "" "probably"
video/mp4; codecs=av01 "" "probably" "maybe"
video/mp4; codecs=av01.0.04M.08 "probably" "probably" "maybe"
video/mp4; codecs="av01.0.04M.08, mp4a.40.2" "probably" "probably" "maybe"
video/mp4; codecs="av01.0.04M.08, opus" "probably" "probably" "maybe"
audio/mp4; codecs=mp4a.40.2 "probably" "probably" "probably"
audio/mp4; codecs=mp4a.40.02 "probably" "probably" "probably"
audio/mp4; codecs=mp4a.40.5 "probably" "probably" "probably"
audio/mp4; codecs=mp4a.40.05 "probably" "probably" "probably"
audio/mp4; codecs=mp4a.40.29 "probably" "probably" "probably"
audio/mp4; codecs=mp4a.40.42 "" "" "maybe"
audio/mp4; codecs=opus "probably" "probably" "maybe"
video/3gpp; codecs="mp4v.20.8, samr" "" "" "probably"
video/ogg; codecs="theora, vorbis" "probably" "probably" ""
video/ogg; codecs="theora, speex" "" "" ""
audio/ogg; codecs=vorbis "probably" "probably" ""
audio/ogg; codecs=speex "" "" ""
audio/ogg; codecs=flac "probably" "probably" ""
audio/ogg; codecs=opus "probably" "probably" ""
video/ogg; codecs="dirac, vorbis" "" "" ""
video/x-matroska; codecs="theora, vorbis" "" "" ""
audio/webm "maybe" "maybe" ""
audio/webm; codecs=vorbis "probably" "probably" ""
video/webm "maybe" "maybe" ""
video/webm; codecs=vorbis "probably" "probably" ""
video/webm; codecs=vp8 "probably" "probably" ""
video/webm; codecs=vp8.0 "probably" "probably" ""
video/webm; codecs="vp8, vorbis" "probably" "probably" ""
video/webm; codecs=vp9 "probably" "probably" ""
video/webm; codecs=vp9.0 "probably" "probably" ""
video/webm; codecs=vp09 "" "" ""
video/webm; codecs=vp09.00.10.08 "probably" "probably" ""

MIME types used in the wild (in type="")

MIME type defaults in Web servers

References