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
(MPEG-4)
 
(14 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 ==
Line 23: Line 23:
 
* FLAC: <code>flac</code>
 
* FLAC: <code>flac</code>
  
== Matroska ==
+
== WebM ==
Main MIME type: <code>video/x-matroska</code>
+
MIME types: <code>audio/webm</code>, <code>video/webm</code>
  
Filename extension: <code>.mkv</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>
  
 
== MPEG ==
 
== MPEG ==
Line 45: Line 44:
  
 
== 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> ([http://www.rfc-editor.org/rfc/rfc4337.txt RFC 4337])
  
 
Filename extension: <code>.mp4</code>
 
Filename extension: <code>.mp4</code>
Line 74: Line 73:
 
* Low-Complexity AAC: <code>mp4a.40.2</code>
 
* Low-Complexity AAC: <code>mp4a.40.2</code>
 
* AMR: <code>samr</code>
 
* AMR: <code>samr</code>
 
== ASF ==
 
Main MIME type: <code>video/x-ms-wmv</code>
 
 
Filename extension: <code>.wmv</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 ===
 
 
* 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 ==
 
== WAVE ==
Main MIME type: <code>audio/x-wav</code>
+
MIME types: <code>audio/wave</code>, <code>audio/wav</code>, <code>audio/x-wav</code>
  
 
Filename extension: <code>.wav</code>
 
Filename extension: <code>.wav</code>
Line 105: Line 81:
 
=== Audio Codecs ===
 
=== Audio Codecs ===
  
The codes below are from <code>MMReg.h</code> from the Windows SDK. These and more can also be found in the GStreamer <code>[http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/riff/riff-ids.h riff-ids.h]</code> header.
+
[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.
 
 
{|
 
! Tag
 
! width="70" | Code
 
! Origin
 
|-
 
| WAVE_FORMAT_UNKNOWN || <code>0x0000</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_PCM || <code>0x0001</code> ||
 
|-
 
| WAVE_FORMAT_ADPCM || <code>0x0002</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_IEEE_FLOAT || <code>0x0003</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_VSELP || <code>0x0004</code> || Compaq Computer Corp.
 
|-
 
| WAVE_FORMAT_IBM_CVSD || <code>0x0005</code> || IBM Corporation
 
|-
 
| WAVE_FORMAT_ALAW || <code>0x0006</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_MULAW || <code>0x0007</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_DTS || <code>0x0008</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_DRM || <code>0x0009</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_WMAVOICE9 || <code>0x000A</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_WMAVOICE10 || <code>0x000B</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_OKI_ADPCM || <code>0x0010</code> || OKI
 
|-
 
| WAVE_FORMAT_DVI_ADPCM || <code>0x0011</code> || Intel Corporation
 
|-
 
| WAVE_FORMAT_MEDIASPACE_ADPCM || <code>0x0012</code> || Videologic
 
|-
 
| WAVE_FORMAT_SIERRA_ADPCM || <code>0x0013</code> || Sierra Semiconductor Corp
 
|-
 
| WAVE_FORMAT_G723_ADPCM || <code>0x0014</code> || Antex Electronics Corporation
 
|-
 
| WAVE_FORMAT_DIGISTD || <code>0x0015</code> || DSP Solutions, Inc.
 
|-
 
| WAVE_FORMAT_DIGIFIX || <code>0x0016</code> || DSP Solutions, Inc.
 
|-
 
| WAVE_FORMAT_DIALOGIC_OKI_ADPCM || <code>0x0017</code> || Dialogic Corporation
 
|-
 
| WAVE_FORMAT_MEDIAVISION_ADPCM || <code>0x0018</code> || Media Vision, Inc.
 
|-
 
| WAVE_FORMAT_CU_CODEC || <code>0x0019</code> || Hewlett-Packard Company
 
|-
 
| WAVE_FORMAT_YAMAHA_ADPCM || <code>0x0020</code> || Yamaha Corporation of America
 
|-
 
| WAVE_FORMAT_SONARC || <code>0x0021</code> || Speech Compression
 
|-
 
| WAVE_FORMAT_DSPGROUP_TRUESPEECH || <code>0x0022</code> || DSP Group, Inc
 
|-
 
| WAVE_FORMAT_ECHOSC1 || <code>0x0023</code> || Echo Speech Corporation
 
|-
 
| WAVE_FORMAT_AUDIOFILE_AF36 || <code>0x0024</code> || Virtual Music, Inc.
 
|-
 
| WAVE_FORMAT_APTX || <code>0x0025</code> || Audio Processing Technology
 
|-
 
| WAVE_FORMAT_AUDIOFILE_AF10 || <code>0x0026</code> || Virtual Music, Inc.
 
|-
 
| WAVE_FORMAT_PROSODY_1612 || <code>0x0027</code> || Aculab plc
 
|-
 
| WAVE_FORMAT_LRC || <code>0x0028</code> || Merging Technologies S.A.
 
|-
 
| WAVE_FORMAT_DOLBY_AC2 || <code>0x0030</code> || Dolby Laboratories
 
|-
 
| WAVE_FORMAT_GSM610 || <code>0x0031</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_MSNAUDIO || <code>0x0032</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_ANTEX_ADPCME || <code>0x0033</code> || Antex Electronics Corporation
 
|-
 
| WAVE_FORMAT_CONTROL_RES_VQLPC || <code>0x0034</code> || Control Resources Limited
 
|-
 
| WAVE_FORMAT_DIGIREAL || <code>0x0035</code> || DSP Solutions, Inc.
 
|-
 
| WAVE_FORMAT_DIGIADPCM || <code>0x0036</code> || DSP Solutions, Inc.
 
|-
 
| WAVE_FORMAT_CONTROL_RES_CR10 || <code>0x0037</code> || Control Resources Limited
 
|-
 
| WAVE_FORMAT_NMS_VBXADPCM || <code>0x0038</code> || Natural MicroSystems
 
|-
 
| WAVE_FORMAT_CS_IMAADPCM || <code>0x0039</code> || Crystal Semiconductor IMA ADPCM
 
|-
 
| WAVE_FORMAT_ECHOSC3 || <code>0x003A</code> || Echo Speech Corporation
 
|-
 
| WAVE_FORMAT_ROCKWELL_ADPCM || <code>0x003B</code> || Rockwell International
 
|-
 
| WAVE_FORMAT_ROCKWELL_DIGITALK || <code>0x003C</code> || Rockwell International
 
|-
 
| WAVE_FORMAT_XEBEC || <code>0x003D</code> || Xebec Multimedia Solutions Limited
 
|-
 
| WAVE_FORMAT_G721_ADPCM || <code>0x0040</code> || Antex Electronics Corporation
 
|-
 
| WAVE_FORMAT_G728_CELP || <code>0x0041</code> || Antex Electronics Corporation
 
|-
 
| WAVE_FORMAT_MSG723 || <code>0x0042</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_MPEG || <code>0x0050</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_RT24 || <code>0x0052</code> || InSoft, Inc.
 
|-
 
| WAVE_FORMAT_PAC || <code>0x0053</code> || InSoft, Inc.
 
|-
 
| WAVE_FORMAT_MPEGLAYER3 || <code>0x0055</code> || ISO/MPEG Layer3 Format Tag
 
|-
 
| WAVE_FORMAT_riLUCENT_G723 || <code>0x0059</code> || Lucent Technologies
 
|-
 
| WAVE_FORMAT_CIRRUS || <code>0x0060</code> || Cirrus Logic
 
|-
 
| WAVE_FORMAT_ESPCM || <code>0x0061</code> || ESS Technology
 
|-
 
| WAVE_FORMAT_VOXWARE || <code>0x0062</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_CANOPUS_ATRAC || <code>0x0063</code> || Canopus, co., Ltd.
 
|-
 
| WAVE_FORMAT_G726_ADPCM || <code>0x0064</code> || APICOM
 
|-
 
| WAVE_FORMAT_G722_ADPCM || <code>0x0065</code> || APICOM
 
|-
 
| WAVE_FORMAT_DSAT_DISPLAY || <code>0x0067</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_VOXWARE_BYTE_ALIGNED || <code>0x0069</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_AC8 || <code>0x0070</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_AC10 || <code>0x0071</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_AC16 || <code>0x0072</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_AC20 || <code>0x0073</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_RT24 || <code>0x0074</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_RT29 || <code>0x0075</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_RT29HW || <code>0x0076</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_VR12 || <code>0x0077</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_VR18 || <code>0x0078</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_VOXWARE_TQ40 || <code>0x0079</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_SOFTSOUND || <code>0x0080</code> || Softsound, Ltd.
 
|-
 
| WAVE_FORMAT_VOXWARE_TQ60 || <code>0x0081</code> || Voxware Inc
 
|-
 
| WAVE_FORMAT_MSRT24 || <code>0x0082</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_G729A || <code>0x0083</code> || AT&T Labs, Inc.
 
|-
 
| WAVE_FORMAT_MVI_MVI2 || <code>0x0084</code> || Motion Pixels
 
|-
 
| WAVE_FORMAT_DF_G726 || <code>0x0085</code> || DataFusion Systems Pty Ltd
 
|-
 
| WAVE_FORMAT_DF_GSM610 || <code>0x0086</code> || DataFusion Systems Pty Ltd
 
|-
 
| WAVE_FORMAT_ISIAUDIO || <code>0x0088</code> || Iterated Systems, Inc.
 
|-
 
| WAVE_FORMAT_ONLIVE || <code>0x0089</code> || OnLive! Technologies, Inc.
 
|-
 
| WAVE_FORMAT_SBC24 || <code>0x0091</code> || Siemens Business Communications Sys
 
|-
 
| WAVE_FORMAT_DOLBY_AC3_SPDIF || <code>0x0092</code> || Sonic Foundry
 
|-
 
| WAVE_FORMAT_MEDIASONIC_G723 || <code>0x0093</code> || MediaSonic
 
|-
 
| WAVE_FORMAT_PROSODY_8KBPS || <code>0x0094</code> || Aculab plc
 
|-
 
| WAVE_FORMAT_ZYXEL_ADPCM || <code>0x0097</code> || ZyXEL Communications, Inc.
 
|-
 
| WAVE_FORMAT_PHILIPS_LPCBB || <code>0x0098</code> || Philips Speech Processing
 
|-
 
| WAVE_FORMAT_PACKED || <code>0x0099</code> || Studer Professional Audio AG
 
|-
 
| WAVE_FORMAT_MALDEN_PHONYTALK || <code>0x00A0</code> || Malden Electronics Ltd.
 
|-
 
| WAVE_FORMAT_RHETOREX_ADPCM || <code>0x0100</code> || Rhetorex Inc.
 
|-
 
| WAVE_FORMAT_IRAT || <code>0x0101</code> || BeCubed Software Inc.
 
|-
 
| WAVE_FORMAT_VIVO_G723 || <code>0x0111</code> || Vivo Software
 
|-
 
| WAVE_FORMAT_VIVO_SIREN || <code>0x0112</code> || Vivo Software
 
|-
 
| WAVE_FORMAT_DIGITAL_G723 || <code>0x0123</code> || Digital Equipment Corporation
 
|-
 
| WAVE_FORMAT_SANYO_LD_ADPCM || <code>0x0125</code> || Sanyo Electric Co., Ltd.
 
|-
 
| WAVE_FORMAT_SIPROLAB_ACEPLNET || <code>0x0130</code> || Sipro Lab Telecom Inc.
 
|-
 
| WAVE_FORMAT_SIPROLAB_ACELP4800 || <code>0x0131</code> || Sipro Lab Telecom Inc.
 
|-
 
| WAVE_FORMAT_SIPROLAB_ACELP8V3 || <code>0x0132</code> || Sipro Lab Telecom Inc.
 
|-
 
| WAVE_FORMAT_SIPROLAB_G729 || <code>0x0133</code> || Sipro Lab Telecom Inc.
 
|-
 
| WAVE_FORMAT_SIPROLAB_G729A || <code>0x0134</code> || Sipro Lab Telecom Inc.
 
|-
 
| WAVE_FORMAT_SIPROLAB_KELVIN || <code>0x0135</code> || Sipro Lab Telecom Inc.
 
|-
 
| WAVE_FORMAT_G726ADPCM || <code>0x0140</code> || Dictaphone Corporation
 
|-
 
| WAVE_FORMAT_QUALCOMM_PUREVOICE || <code>0x0150</code> || Qualcomm, Inc.
 
|-
 
| WAVE_FORMAT_QUALCOMM_HALFRATE || <code>0x0151</code> || Qualcomm, Inc.
 
|-
 
| WAVE_FORMAT_TUBGSM || <code>0x0155</code> || Ring Zero Systems, Inc.
 
|-
 
| WAVE_FORMAT_MSAUDIO1 || <code>0x0160</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_WMAUDIO2 || <code>0x0161</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_WMAUDIO3 || <code>0x0162</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_WMAUDIO_LOSSLESS || <code>0x0163</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_WMASPDIF || <code>0x0164</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_UNISYS_NAP_ADPCM || <code>0x0170</code> || Unisys Corp.
 
|-
 
| WAVE_FORMAT_UNISYS_NAP_ULAW || <code>0x0171</code> || Unisys Corp.
 
|-
 
| WAVE_FORMAT_UNISYS_NAP_ALAW || <code>0x0172</code> || Unisys Corp.
 
|-
 
| WAVE_FORMAT_UNISYS_NAP_16K || <code>0x0173</code> || Unisys Corp.
 
|-
 
| WAVE_FORMAT_CREATIVE_ADPCM || <code>0x0200</code> || Creative Labs, Inc
 
|-
 
| WAVE_FORMAT_CREATIVE_FASTSPEECH8 || <code>0x0202</code> || Creative Labs, Inc
 
|-
 
| WAVE_FORMAT_CREATIVE_FASTSPEECH10 || <code>0x0203</code> || Creative Labs, Inc
 
|-
 
| WAVE_FORMAT_UHER_ADPCM || <code>0x0210</code> || UHER informatic GmbH
 
|-
 
| WAVE_FORMAT_QUARTERDECK || <code>0x0220</code> || Quarterdeck Corporation
 
|-
 
| WAVE_FORMAT_ILINK_VC || <code>0x0230</code> || I-link Worldwide
 
|-
 
| WAVE_FORMAT_RAW_SPORT || <code>0x0240</code> || Aureal Semiconductor
 
|-
 
| WAVE_FORMAT_ESST_AC3 || <code>0x0241</code> || ESS Technology, Inc.
 
|-
 
| WAVE_FORMAT_GENERIC_PASSTHRU || <code>0x0249</code> ||
 
|-
 
| WAVE_FORMAT_IPI_HSX || <code>0x0250</code> || Interactive Products, Inc.
 
|-
 
| WAVE_FORMAT_IPI_RPELP || <code>0x0251</code> || Interactive Products, Inc.
 
|-
 
| WAVE_FORMAT_CS2 || <code>0x0260</code> || Consistent Software
 
|-
 
| WAVE_FORMAT_SONY_SCX || <code>0x0270</code> || Sony Corp.
 
|-
 
| WAVE_FORMAT_FM_TOWNS_SND || <code>0x0300</code> || Fujitsu Corp.
 
|-
 
| WAVE_FORMAT_BTV_DIGITAL || <code>0x0400</code> || Brooktree Corporation
 
|-
 
| WAVE_FORMAT_QDESIGN_MUSIC || <code>0x0450</code> || QDesign Corporation
 
|-
 
| WAVE_FORMAT_VME_VMPCM || <code>0x0680</code> || AT&T Labs, Inc.
 
|-
 
| WAVE_FORMAT_TPC || <code>0x0681</code> || AT&T Labs, Inc.
 
|-
 
| WAVE_FORMAT_OLIGSM || <code>0x1000</code> || Ing C. Olivetti & C., S.p.A.
 
|-
 
| WAVE_FORMAT_OLIADPCM || <code>0x1001</code> || Ing C. Olivetti & C., S.p.A.
 
|-
 
| WAVE_FORMAT_OLICELP || <code>0x1002</code> || Ing C. Olivetti & C., S.p.A.
 
|-
 
| WAVE_FORMAT_OLISBC || <code>0x1003</code> || Ing C. Olivetti & C., S.p.A.
 
|-
 
| WAVE_FORMAT_OLIOPR || <code>0x1004</code> || Ing C. Olivetti & C., S.p.A.
 
|-
 
| WAVE_FORMAT_LH_CODEC || <code>0x1100</code> || Lernout & Hauspie
 
|-
 
| WAVE_FORMAT_NORRIS || <code>0x1400</code> || Norris Communications, Inc.
 
|-
 
| WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS || <code>0x1500</code> || AT&T Labs, Inc.
 
|-
 
| WAVE_FORMAT_MPEG_ADTS_AAC || <code>0x1600</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_MPEG_RAW_AAC || <code>0x1601</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC || <code>0x1608</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_NOKIA_MPEG_RAW_AAC || <code>0x1609</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC || <code>0x160A</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC || <code>0x160B</code> || Microsoft Corporation
 
|-
 
| WAVE_FORMAT_DVM || <code>0x2000</code> || FAST Multimedia AG
 
|-
 
| WAVE_FORMAT_EXTENSIBLE || <code>0xFFFE</code> || Microsoft
 
|-
 
|}
 
  
 
== Browser Support ==
 
== Browser Support ==
  
 
The table below lists the results of <code>canPlayType(type)</code> for different browsers. It does not necessary relate to what the browsers actually ''can'' play.
 
The table below lists the results of <code>canPlayType(type)</code> for different browsers. It does not necessary relate to what the browsers actually ''can'' play.
 
'''Note: The spec has replaced "no" with "", but no implementations have updated to reflect this yet.'''
 
  
 
<!--
 
<!--
  
Generated with http://software.hixie.ch/utilities/js/live-dom-viewer/saved/163
+
Generated with http://software.hixie.ch/utilities/js/live-dom-viewer/saved/786
  
 
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 firefox.txt safari.txt chrome.txt | awk -F\\t '{printf " | <code>%s</code>\n| %s\n| %s\n| %s\n|-\n", $1, $2, $3, $4}' | sed 's/| no/| style="background:LightPink" | no/;s/| maybe/| style="background:SkyBlue" | maybe/;s/| probably/| style="background:GreenYellow" | probably/'
+
$ 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"/'
  
 
-->
 
-->
Line 426: Line 99:
 
{| style="text-align:center"
 
{| style="text-align:center"
 
! MIME
 
! MIME
! width="100" | Firefox 3.5 <!-- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 -->
+
! width="100" | Opera 11 <!-- Opera/9.80 (X11; Linux i686; U; en) Presto/2.7.62 Version/11.00 -->
! width="100" | Safari 4 <!-- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19.1 -->
+
! width="100" | Firefox 4 <!-- Mozilla/5.0 (X11; Linux i686; rv:2.0b9) Gecko/20100101 Firefox/4.0b9 -->
! width="100" | Chrome 3 <!-- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.3 (KHTML, like Gecko) Chrome/3.0.193.0 Safari/531.3 -->
+
! 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  -->
 +
! 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="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>application/ogg; codecs=bogus</code>
 
| <code>application/ogg; codecs=bogus</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>application/mp4</code>
 
| <code>application/mp4</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>application/mp4; codecs=bogus</code>
 
| <code>application/mp4; codecs=bogus</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>application/octet-stream</code>
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
|-
 +
| <code>application/octet-stream; codecs=bogus</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/3gpp</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/3gpp2</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/aac</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-aac</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/aiff</code>
 
| <code>audio/aiff</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-aiff</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/ac3</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-ac3</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/basic</code>
 
| <code>audio/basic</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/flac</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-flac</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/mid</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/midi</code>
 
| <code>audio/midi</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-midi</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/mpeg</code>
 
| <code>audio/mpeg</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:SkyBlue" | "maybe"
 +
|-
 +
| <code>audio/x-mpeg</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/mpegurl</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-mpegurl</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/mp4</code>
 
| <code>audio/mp4</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:SkyBlue" | "maybe"
 
|-
 
|-
 
| <code>audio/mp4; codecs=bogus</code>
 
| <code>audio/mp4; codecs=bogus</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/ogg</code>
 
| <code>audio/ogg</code>
| style="background:SkyBlue" | maybe
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/ogg; codecs=bogus</code>
 
| <code>audio/ogg; codecs=bogus</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wav</code>
 
| <code>audio/wav</code>
| style="background:SkyBlue" | maybe
+
| style="background:SkyBlue" | "maybe"
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wav; codecs=0</code>
 
| <code>audio/wav; codecs=0</code>
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wav; codecs=1</code>
 
| <code>audio/wav; codecs=1</code>
| style="background:GreenYellow" | probably
+
| style="background:GreenYellow" | "probably"
| style="background:SkyBlue" | maybe
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wav; codecs=2</code>
 
| <code>audio/wav; codecs=2</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wave</code>
 
| <code>audio/wave</code>
| style="background:SkyBlue" | maybe
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wave; codecs=0</code>
 
| <code>audio/wave; codecs=0</code>
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wave; codecs=1</code>
 
| <code>audio/wave; codecs=1</code>
| style="background:GreenYellow" | probably
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/wave; codecs=2</code>
 
| <code>audio/wave; codecs=2</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
| <code>audio/x-aiff</code>
+
| <code>audio/x-wav</code>
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="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:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="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="background:GreenYellow" | "probably"
| style="background:SkyBlue" | maybe
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/x-wav; codecs=2</code>
 
| <code>audio/x-wav; codecs=2</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-pn-wav</code>
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-pn-wav; codecs=0</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-pn-wav; codecs=1</code>
 +
| style="background:LightPink" | ""
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/x-pn-wav; codecs=2</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/3gpp</code>
 
| <code>video/3gpp</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/3gpp2</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/avi</code>
 
| <code>video/avi</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/mpeg</code>
 
| <code>video/mpeg</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/x-mpeg</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/mp4</code>
 
| <code>video/mp4</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:SkyBlue" | "maybe"
 
|-
 
|-
 
| <code>video/mp4; codecs=bogus</code>
 
| <code>video/mp4; codecs=bogus</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/msvideo</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/x-msvideo</code>
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/quicktime</code>
 
| <code>video/quicktime</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/ogg</code>
 
| <code>video/ogg</code>
| style="background:SkyBlue" | maybe
+
| style="background:SkyBlue" | "maybe"
| style="background:LightPink" | no
+
| style="background:SkyBlue" | "maybe"
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/ogg; codecs=bogus</code>
 
| <code>video/ogg; codecs=bogus</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
|-
+
| style="background:LightPink" | ""
| <code>video/x-msvideo</code>
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
 
| style="background:GreenYellow" | probably
 
| style="background:LightPink" | no
 
 
|-
 
|-
 
| <code>video/mp4; codecs="avc1.42E01E, mp4a.40.2"</code>
 
| <code>video/mp4; codecs="avc1.42E01E, mp4a.40.2"</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| 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" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| 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" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| 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" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| 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" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| 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" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:LightPink" | ""
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/3gpp; codecs="mp4v.20.8, samr"</code>
 
| <code>video/3gpp; codecs="mp4v.20.8, samr"</code>
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:SkyBlue" | maybe
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| 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="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:GreenYellow" | probably
+
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/ogg; codecs="theora, speex"</code>
 
| <code>video/ogg; codecs="theora, speex"</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/ogg; codecs=vorbis</code>
 
| <code>audio/ogg; codecs=vorbis</code>
| style="background:GreenYellow" | probably
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:GreenYellow" | probably
+
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/ogg; codecs=speex</code>
 
| <code>audio/ogg; codecs=speex</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>audio/ogg; codecs=flac</code>
 
| <code>audio/ogg; codecs=flac</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
| <code>video/ogg; codecs="dirac, vorbis"</code>
 
| <code>video/ogg; codecs="dirac, vorbis"</code>
| style="background:LightPink" | no
+
| style="background:GreenYellow" | "probably"
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:GreenYellow" | probably
+
| style="background:SkyBlue" | "maybe"
 +
| 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" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
| style="background:LightPink" | no
+
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/webm</code>
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>audio/webm; codecs=vorbis</code>
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/webm</code>
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:SkyBlue" | "maybe"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs=vorbis</code>
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs=vp8</code>
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs=vp8.0</code>
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 +
|-
 +
| <code>video/webm; codecs="vp8, vorbis"</code>
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:GreenYellow" | "probably"
 +
| style="background:LightPink" | ""
 +
| style="background:LightPink" | ""
 
|-
 
|-
 
|}
 
|}
Line 674: Line 653:
 
== MIME type defaults in Web servers ==
 
== MIME type defaults in Web servers ==
  
* [http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types mime.types in Apache] (is there a newer one?)
+
* [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]
+
* [http://technet.microsoft.com/en-us/library/bb742440.aspx#ECAA MIME types in IIS] (is there a newer one?)
 +
 
 +
[[Category:Registries]]

Latest revision as of 09:22, 27 January 2011

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 (RFC 3534), audio/ogg, video/ogg (RFC 5334)

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

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

MPEG

MIME types: audio/mpeg (RFC 3003), video/mpeg (RFC 2046)

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

There are no registered codecs parameters.

MPEG-4

MIME types: audio/mp4, video/mp4 (RFC 4337)

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

Audio Codecs

  • Low-Complexity AAC: mp4a.40.2

3GPP

Main MIME type: video/3gpp (RFC 3839)

Filename extension: .3gp

Video Codecs

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

Audio Codecs

  • Low-Complexity AAC: mp4a.40.2
  • 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 Opera 11 Firefox 4 Chromium 9 Safari 5 IE 9
application/ogg "maybe" "maybe" "maybe" "" ""
application/ogg; codecs=bogus "" "" "maybe" "" ""
application/mp4 "" "" "" "" ""
application/mp4; codecs=bogus "" "" "" "" ""
application/octet-stream "maybe" "" "" "" "maybe"
application/octet-stream; codecs=bogus "" "" "" "" ""
audio/3gpp "" "" "" "" ""
audio/3gpp2 "" "" "" "" ""
audio/aac "" "" "" "maybe" ""
audio/x-aac "" "" "" "maybe" ""
audio/aiff "" "" "" "maybe" ""
audio/x-aiff "" "" "" "maybe" ""
audio/ac3 "" "" "" "maybe" ""
audio/x-ac3 "" "" "" "maybe" ""
audio/basic "" "" "" "maybe" ""
audio/flac "" "" "" "" ""
audio/x-flac "" "" "" "" ""
audio/mid "" "" "" "maybe" ""
audio/midi "" "" "" "maybe" ""
audio/x-midi "" "" "" "maybe" ""
audio/mpeg "" "" "" "maybe" "maybe"
audio/x-mpeg "" "" "" "maybe" ""
audio/mpegurl "" "" "" "maybe" ""
audio/x-mpegurl "" "" "" "maybe" ""
audio/mp4 "" "" "" "maybe" "maybe"
audio/mp4; codecs=bogus "" "" "" "probably" ""
audio/ogg "maybe" "maybe" "maybe" "" ""
audio/ogg; codecs=bogus "" "" "maybe" "" ""
audio/wav "maybe" "maybe" "maybe" "maybe" ""
audio/wav; codecs=0 "" "" "" "probably" ""
audio/wav; codecs=1 "probably" "probably" "probably" "probably" ""
audio/wav; codecs=2 "probably" "" "" "probably" ""
audio/wave "maybe" "maybe" "" "" ""
audio/wave; codecs=0 "" "" "" "" ""
audio/wave; codecs=1 "probably" "probably" "" "" ""
audio/wave; codecs=2 "probably" "" "" "" ""
audio/x-wav "maybe" "maybe" "maybe" "maybe" ""
audio/x-wav; codecs=0 "" "" "maybe" "probably" ""
audio/x-wav; codecs=1 "probably" "probably" "probably" "probably" ""
audio/x-wav; codecs=2 "probably" "" "maybe" "probably" ""
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" ""
video/3gpp2 "" "" "" "maybe" ""
video/avi "" "" "" "maybe" ""
video/mpeg "" "" "" "maybe" ""
video/x-mpeg "" "" "" "maybe" ""
video/mp4 "" "" "" "maybe" "maybe"
video/mp4; codecs=bogus "" "" "" "probably" ""
video/msvideo "" "" "" "maybe" ""
video/x-msvideo "" "" "" "maybe" ""
video/quicktime "" "" "" "maybe" ""
video/ogg "maybe" "maybe" "maybe" "" ""
video/ogg; codecs=bogus "" "" "maybe" "" ""
video/mp4; codecs="avc1.42E01E, mp4a.40.2" "" "" "" "probably" "probably"
video/mp4; codecs="avc1.58A01E, mp4a.40.2" "" "" "" "probably" "probably"
video/mp4; codecs="avc1.4D401E, mp4a.40.2" "" "" "" "probably" "probably"
video/mp4; codecs="avc1.64001E, mp4a.40.2" "" "" "" "probably" "probably"
video/mp4; codecs="mp4v.20.8, mp4a.40.2" "" "" "" "probably" ""
video/mp4; codecs="mp4v.20.240, mp4a.40.2" "" "" "" "probably" ""
video/3gpp; codecs="mp4v.20.8, samr" "" "" "" "probably" ""
video/ogg; codecs="theora, vorbis" "probably" "probably" "probably" "" ""
video/ogg; codecs="theora, speex" "probably" "" "maybe" "" ""
audio/ogg; codecs=vorbis "probably" "probably" "probably" "" ""
audio/ogg; codecs=speex "probably" "" "maybe" "" ""
audio/ogg; codecs=flac "probably" "" "maybe" "" ""
video/ogg; codecs="dirac, vorbis" "probably" "" "maybe" "" ""
video/x-matroska; codecs="theora, vorbis" "" "" "" "" ""
audio/webm "maybe" "probably" "maybe" "" ""
audio/webm; codecs=vorbis "probably" "probably" "probably" "" ""
video/webm "maybe" "probably" "maybe" "" ""
video/webm; codecs=vorbis "probably" "probably" "probably" "" ""
video/webm; codecs=vp8 "probably" "probably" "probably" "" ""
video/webm; codecs=vp8.0 "probably" "probably" "probably" "" ""
video/webm; codecs="vp8, vorbis" "probably" "probably" "probably" "" ""

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

MIME type defaults in Web servers