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
(it's not clear how to descrive WAVE PCM with a mime type...)
(little survey of canPlayType)
Line 99: Line 99:
 
* ADPCM: ''unknown''
 
* ADPCM: ''unknown''
 
* MP3: ''unknown''
 
* MP3: ''unknown''
 +
 +
== 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.
 +
 +
<!--
 +
 +
Generated with http://software.hixie.ch/utilities/js/live-dom-viewer/saved/163
 +
 +
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/'
 +
 +
-->
 +
 +
{| style="text-align:center"
 +
! 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" | 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" | 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 -->
 +
|-
 +
| <code>application/ogg</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>application/ogg; codecs=bogus</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>application/mp4</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>application/mp4; codecs=bogus</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/aiff</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/basic</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/midi</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/mpeg</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/mp4</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/mp4; codecs=bogus</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/ogg</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/ogg; codecs=bogus</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/wav</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wav; codecs=0</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wav; codecs=1</code>
 +
| style="background:GreenYellow" | probably
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wav; codecs=2</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wave</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wave; codecs=0</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wave; codecs=1</code>
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/wave; codecs=2</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/x-aiff</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/x-wav; codecs=0</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/x-wav; codecs=1</code>
 +
| style="background:GreenYellow" | probably
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>audio/x-wav; codecs=2</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>video/3gpp</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>video/avi</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>video/mpeg</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4; codecs=bogus</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/quicktime</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>video/ogg</code>
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/ogg; codecs=bogus</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/x-msvideo</code>
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>video/mp4; codecs="avc1.42E01E, mp4a.40.2"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4; codecs="avc1.58A01E, mp4a.40.2"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4; codecs="avc1.4D401E, mp4a.40.2"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4; codecs="avc1.64001E, mp4a.40.2"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4; codecs="mp4v.20.8, mp4a.40.2"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/mp4; codecs="mp4v.20.240, mp4a.40.2"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/3gpp; codecs="mp4v.20.8, samr"</code>
 +
| style="background:LightPink" | no
 +
| style="background:SkyBlue" | maybe
 +
| style="background:LightPink" | no
 +
|-
 +
| <code>video/ogg; codecs="theora, vorbis"</code>
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/ogg; codecs="theora, speex"</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/ogg; codecs=vorbis</code>
 +
| style="background:GreenYellow" | probably
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/ogg; codecs=speex</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>audio/ogg; codecs=flac</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/ogg; codecs="dirac, vorbis"</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:GreenYellow" | probably
 +
|-
 +
| <code>video/x-matroska; codecs="theora, vorbis"</code>
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
| style="background:LightPink" | no
 +
|-
 +
|}

Revision as of 22:07, 11 July 2009

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 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.

Ogg

Main MIME type: application/ogg (RFC 3534)

Filename extension: .ogg

Video Codecs

  • Theora: theora
  • Dirac: unknown

Audio Codecs

  • Vorbis: vorbis
  • Speex: speex

Matroska

Main MIME type: video/x-matroska

Filename extension: .mkv

Video Codecs

  • Theora: unknown
  • Dirac: unknown

Audio Codecs

  • Vorbis: unknown

MP4

Main MIME type: 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

Advanced Systems Format

Main MIME type: video/x-ms-wmv

Filename extension: .wmv

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: application/vnd.rn-realmedia

Filename extension: .rm

Is this single-vendor format even relevant here?

WAVE

Main MIME type: audio/x-wav

Filename extension: .wav

Audio Codecs

  • PCM: unknown
  • u-Law: unknown
  • ADPCM: unknown
  • MP3: unknown

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 Firefox 3.5 Safari 4 Chrome 3
application/ogg maybe no no
application/ogg; codecs=bogus no no no
application/mp4 no no no
application/mp4; codecs=bogus no no no
audio/aiff no probably no
audio/basic no probably no
audio/midi no probably no
audio/mpeg no probably probably
audio/mp4 no probably probably
audio/mp4; codecs=bogus no maybe probably
audio/ogg maybe no probably
audio/ogg; codecs=bogus no no probably
audio/wav maybe probably no
audio/wav; codecs=0 maybe maybe no
audio/wav; codecs=1 probably maybe no
audio/wav; codecs=2 no maybe no
audio/wave maybe no no
audio/wave; codecs=0 maybe no no
audio/wave; codecs=1 probably no no
audio/wave; codecs=2 no no no
audio/x-aiff no probably no
audio/x-wav; codecs=0 maybe maybe no
audio/x-wav; codecs=1 probably maybe no
audio/x-wav; codecs=2 no maybe no
video/3gpp no probably no
video/avi no probably no
video/mpeg no probably probably
video/mp4 no probably probably
video/mp4; codecs=bogus no maybe probably
video/quicktime no probably no
video/ogg maybe no probably
video/ogg; codecs=bogus no no probably
video/x-msvideo no probably no
video/mp4; codecs="avc1.42E01E, mp4a.40.2" no maybe probably
video/mp4; codecs="avc1.58A01E, mp4a.40.2" no maybe probably
video/mp4; codecs="avc1.4D401E, mp4a.40.2" no maybe probably
video/mp4; codecs="avc1.64001E, mp4a.40.2" no maybe probably
video/mp4; codecs="mp4v.20.8, mp4a.40.2" no maybe probably
video/mp4; codecs="mp4v.20.240, mp4a.40.2" no maybe probably
video/3gpp; codecs="mp4v.20.8, samr" no maybe no
video/ogg; codecs="theora, vorbis" probably no probably
video/ogg; codecs="theora, speex" no no probably
audio/ogg; codecs=vorbis probably no probably
audio/ogg; codecs=speex no no probably
audio/ogg; codecs=flac no no probably
video/ogg; codecs="dirac, vorbis" no no probably
video/x-matroska; codecs="theora, vorbis" no no no