MIME Types and File Extensions

From XiphWiki

(Difference between revisions)
Jump to: navigation, search
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: final edits before turning proposal into an official Xiph recommendation and work on RFCs and tools will start to reflect these policies.
-
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, only application/ogg is a registered MIME type. Registration for the others will need to be undertaken.
IMPLEMENTATION recommendations and patches: see [[MIME-Migration]].
IMPLEMENTATION recommendations and patches: see [[MIME-Migration]].
Line 18: Line 18:
* Ogg Audio Profile (audio in Ogg container)
* Ogg Audio Profile (audio 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 e.g. [[Vorbis]], [[Speex]], [[FLAC]], [[Ghost]], [[OggPCM]] inside Ogg, though Ogg Vorbis and Ogg Speex also have special profiles
+
* covers Ogg [[FLAC]], [[Ghost]], and [[OggPCM]]  
 +
* Although they share the same MIME type, Vorbis and Speex use different file extensions.
* May contain Ogg Skeleton and/or [[CMML]] logical bitstreams.
* 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.
+
RATIONALE: This distinguishes audio-only files, using any of the Xiph audio codecs, from Vorbis I files (traditionally .ogg) which may not contain more than one logical bitstream.
== .ogv - video/ogg ==
== .ogv - video/ogg ==
Line 31: Line 32:
* May contain Ogg Skeleton and/or CMML logical bitstreams.
* May contain Ogg Skeleton and/or CMML logical bitstreams.
-
== .ogg - audio/ogg+vorbis ==
+
== .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 respectively
+
* .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, hence it is kept for backwards-compatibility
+
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 - application/flac ==
== .flac - application/flac ==
-
* flac in native encapsulation format
+
* FLAC in native encapsulation format
== .anx - application/annodex ==
== .anx - application/annodex ==
Line 57: Line 58:
== .axa - audio/annodex ==
== .axa - audio/annodex ==
-
* Profile for audio in annodex
+
* Profile for audio in Annodex
* covers e.g. [[Vorbis]], [[Speex]], [[FLAC]], [[Ghost]], [[OggPCM]] inside Ogg with Skeleton and CMML
* covers e.g. [[Vorbis]], [[Speex]], [[FLAC]], [[Ghost]], [[OggPCM]] inside Ogg with Skeleton and CMML
== .axv - video/annodex ==
== .axv - video/annodex ==
-
* Profile for video in 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
* covers e.g. [[Theora]], Theora + Vorbis, Theora + Speex, Theora + FLAC, [[Dirac]] + Vorbis, [[OggMNG|MNG]] + FLAC, [[OggUVS]] inside Ogg with Skeleton and CMML
Line 68: Line 69:
* Profile for XSPF
* Profile for XSPF
-
* Cover [[XSPF]], while being used through XML
+
* Covers [[XSPF]], while being used through XML
* Currently, does not cover [[JSPF]], which is XSPF but on Json
* Currently, does not cover [[JSPF]], which is XSPF but on Json

Revision as of 22:11, 19 July 2007

STATUS: final edits before turning proposal into an official Xiph recommendation and work on RFCs and tools will start to reflect these policies.

DISCLAIMER: currently, only application/ogg is a registered MIME type. Registration for the others will need to be undertaken.

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

.oga - audio/ogg

  • Ogg Audio Profile (audio in Ogg container)
  • apps 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.
  • May contain Ogg Skeleton and/or CMML logical bitstreams.

RATIONALE: This distinguishes audio-only files, using any of the Xiph audio codecs, from Vorbis I files (traditionally .ogg) which may not contain more than one logical bitstream.

.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)
  • May contain Ogg Skeleton and/or CMML logical bitstreams.

.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 - application/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
  • Currently, does not cover JSPF, which is XSPF but on Json

Codec MIME types

Codecs need their own MIME types for streaming 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 container, but extra FLAC Ogg header (?)
  • text/cmml for CMML without container
Personal tools


Main Page

Xiph.Org Projects

Audio—

Video—

Text—

Container—

Streaming—