MIME Types and File Extensions

From XiphWiki

(Difference between revisions)
Jump to: navigation, search
m (Codec MIME types)
 
(36 intermediate revisions not shown)
Line 1: Line 1:
-
STATUS: final editing before being turned into an official Xiph recommendation and work on rfcs will start to reflect these policies
+
STATUS: Work on RFCs and tools is in process to reflect these policies. More details are [http://wiki.xiph.org/index.php/MIMETypesCodecs here], which also include a specification of the codecs parameter of the MIME tyes. Use the correct file extensions straight away.
-
DISCLAIMER: currently, only application/ogg is a registered mimetype. Registration for the others will need to be undertaken. In the meantime, use of the "x-" mimetype is recommended.
+
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 ==
== .ogx - application/ogg ==
Line 8: Line 10:
* can contain any logical bitstreams multiplexed together in an ogg container
* 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
* will replace the .ogg extension from RFC 3534 http://www.ietf.org/rfc/rfc3534.txt
-
* random multitrack files SHOULD contain a [[Skeleton]] track to identify all containing logical bitstreams
+
* 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 drop but MAY still decode the ones they can
+
* 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]]
-
== .oga - audio/ogg ==
+
* USE: application/ogg has been registered, so can be used immediately
-
 
+
-
* Ogg Audio Profile (audio in Ogg container)
+
-
* apps supporting .oga, .ogv SHOULD support decoding from muxed Ogg streams
+
-
* covers [[Vorbis]], [[Speex]], [[FLAC]], [[Ghost]], [[OggPCM]] inside Ogg, though Ogg Vorbis and Ogg Speex also have special profiles
+
-
* May contain Ogg Skeleton and/or [[CMML]] logical bitstreams.
+
-
 
+
-
RATIONALE: This distinguishes audio-only files, using any of the Xiph audio codecs, from Ogg Vorbis I files (traditional .ogg) which may not contain more than one logical bitstream.
+
== .ogv - video/ogg ==
== .ogv - video/ogg ==
Line 24: Line 19:
* Ogg Video Profile (a/v in Ogg container)
* Ogg Video Profile (a/v in Ogg container)
* apps supporting .oga, .ogv SHOULD support decoding from muxed Ogg streams
* apps supporting .oga, .ogv SHOULD support decoding from muxed Ogg streams
-
* covers [[Theora]], Theora + Vorbis, Theora + Speex, Theora + FLAC, [[Dirac]] + Vorbis, [[OggMNG|MNG]] + FLAC, [[OggUVS]] inside Ogg
+
* covers e.g. [[Theora]], Theora + Vorbis, Theora + Speex, Theora + FLAC, [[Dirac]] + Vorbis, [[OggMNG|MNG]] + FLAC, [[OggUVS]] inside Ogg
-
* May contain Ogg Skeleton and/or CMML logical bitstreams.
+
* 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.
-
== .ogg - audio/ogg+vorbis ==
+
== .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 Vorbis I Profile
-
* .ogg applies now for Ogg Vorbis I files only
+
* .ogg applies now for Vorbis I files only
-
* .ogg has more recently also been used for Ogg FLAC and for Ogg Theora, too - these uses are deprecated now in favor of .oga and .ogv
+
* .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
* 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 Ogg Vorbis I files, in particular in HW players, which needs to continue to be supported
+
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+speex ==
+
== .spx - audio/ogg ==
* Ogg Speex Profile
* Ogg Speex Profile
-
* .spx has traditionally been used for Ogg Speex files and should be considered for backwards-compatibility
+
* .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 identify a logical bitstream which they cannot decode SHOULD ignore it but MAY still decode the ones they can
 +
* 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, [[OggMNG|MNG]] + FLAC, [[OggUVS]] inside Ogg with Skeleton and CMML
 +
 
 +
== .xspf - application/xspf+xml ==
-
== .flac - application/flac ==
+
* Profile for XSPF
 +
* Covers [[XSPF]], while being used through XML
 +
* Does not cover [[JSPF]], which is XSPF but on JSON
-
* flac in native encapsulation format
+
== Ogg Kate files - application/kate ==
 +
* Binary representation of Kate encapsulated in Ogg
 +
* may have a skeleton
 +
* can be used to identify the mime type of the track itself (e.g. in skeleton)
 +
* uses .ogx extension when in a file by itself
 +
* is subdued by the dominant mime type if in a audio or video file to become audio/ogg or video/ogg
== Codec MIME types ==
== Codec MIME types ==
-
Codecs need their own MIME types for streaming and to be used in multitrack ogg files using skeleton:
+
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
* audio/vorbis for Vorbis without container
* video/theora for Theora without container
* video/theora for Theora without container
* audio/speex for Speex without container
* audio/speex for Speex without container
-
* audio/flac for FLAC without container, but extra FLAC Ogg header (?)
+
* audio/flac for FLAC without and in native container
 +
* text/cmml for CMML without container
 +
* application/kate for the textual representation of Kate (.kate files)

Latest revision as of 07:06, 20 March 2010

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.

Contents

.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 identify a logical bitstream which they cannot decode SHOULD ignore it but MAY still decode the ones they can
  • 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

.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

Ogg Kate files - application/kate

  • Binary representation of Kate encapsulated in Ogg
  • may have a skeleton
  • can be used to identify the mime type of the track itself (e.g. in skeleton)
  • uses .ogx extension when in a file by itself
  • is subdued by the dominant mime type if in a audio or video file to become audio/ogg or video/ogg

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
  • application/kate for the textual representation of Kate (.kate files)
Personal tools


Main Page

Xiph.Org Projects

Audio—

Video—

Text—

Container—

Streaming—