MIME Types and File Extensions
STATUS: Work on RFCs and tools is in process to reflect these policies. More details are here, which also include a specification of the codecs parameter of the MIME tyes. Use the correct file extensions straight away.
DISCLAIMER: currently, application/ogg, video/ogg, audio/ogg and audio/vorbis are registered MIME types. Registration for the others will be undertaken. During this process, the "x-" versions of these unregistered MIME types may be used.
IMPLEMENTATION recommendations and patches: see MIME-Migration.
.ogx - application/ogg
- Ogg Multiplex Profile (anything in Ogg)
- can contain any logical bitstreams multiplexed together in an ogg container
- will replace the .ogg extension from RFC 3534 http://www.ietf.org/rfc/rfc3534.txt
- random multitrack files MUST contain a Skeleton track to identify all containing logical bitstreams
- apps that identify a logical bitstream which they cannot decode SHOULD ignore it but MAY still decode the ones they can
- thus, e.g. an annodex file can gracefully degrade to .ogx if an app cannot decode CMML and/or Skeleton
- USE: application/ogg has been registered, so can be used immediately
.ogv - video/ogg
- Ogg Video Profile (a/v in Ogg container)
- apps supporting .oga, .ogv SHOULD support decoding from muxed Ogg streams
- covers e.g. Theora, Theora + Vorbis, Theora + Speex, Theora + FLAC, Dirac + Vorbis, MNG + FLAC, OggUVS inside Ogg
- This list is not exhaustive (for example, Dirac + FLAC is acceptable too)
- SHOULD contain a Skeleton track and/or MAY contain a CMML logical bitstream.
.oga - audio/ogg
- Ogg Audio Profile (audio in Ogg container)
- Applications supporting .oga, .ogv SHOULD support decoding from muxed Ogg streams
- Covers Ogg FLAC, Ghost, and OggPCM
- Although they share the same MIME type, Vorbis and Speex use different file extensions.
- SHOULD contain a Skeleton logical bitstream.
- Vorbis and Speex may use .oga, but it is not the prefered method of distributing these files because of backwards-compatibility issues.
.ogg - audio/ogg
- Ogg Vorbis I Profile
- .ogg applies now for Vorbis I files only
- .ogg has more recently also been used for Ogg FLAC and for Theora, too — these uses are deprecated now in favor of .oga and .ogv respectively
- has been defined in RFC 3534 http://www.ietf.org/rfc/rfc3534.txt for application/ogg, so rfc 3534 will be re-defined
RATIONALE: .ogg has traditionally been used for Vorbis I files, in particular in HW players, hence it is kept for backwards-compatibility
.spx - audio/ogg
- Ogg Speex Profile
- .spx has traditionally been used for Speex files within Ogg and should be considered for backwards-compatibility
.flac - audio/flac
- FLAC in native encapsulation format
.anx - application/annodex
- Profile for multiplexed Ogg that includes a skeleton track and at least one CMML logical bitstream
- apps that come across an annodex file and cannot decode CMML and/or Skeleton, but can deal with the others SHOULD gracefully degrade by ignoring these
.axa - audio/annodex
- Profile for audio in Annodex
- covers e.g. Vorbis, Speex, FLAC, Ghost, OggPCM inside Ogg with Skeleton and CMML
.axv - video/annodex
- Profile for video in Annodex
- covers e.g. Theora, Theora + Vorbis, Theora + Speex, Theora + FLAC, Dirac + Vorbis, MNG + FLAC, OggUVS inside Ogg with Skeleton and CMML
.xspf - application/xspf+xml
- Profile for XSPF
- Covers XSPF, while being used through XML
- Does not cover JSPF, which is XSPF but on JSON
Codec MIME types
Codecs need their own MIME types for streaming in RTP and to be used in multitrack ogg files using skeleton:
- audio/vorbis for Vorbis without container
- video/theora for Theora without container
- audio/speex for Speex without container
- audio/flac for FLAC without and in native container
- text/cmml for CMML without container