Difference between revisions of "MIME Types and File Extensions"

From XiphWiki
Jump to navigation Jump to search
(forgot to rename application to audio in FLAC)
(RFC 7845)
 
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
STATUS: Work on RFCs and tools is starting now to reflect these policies. Use the correct file extensions straight away.
+
STATUS: [http://www.ietf.org/rfc/rfc5334.txt RFC 5334] encapsulates the below listed policies. More details are [http://wiki.xiph.org/index.php/MIMETypesCodecs here], which also include a specification of the codecs parameter of the MIME types. Use the correct file extensions straight away.
  
DISCLAIMER: currently, only application/ogg is a registered MIME type.  Registration for the others is being undertaken. During this process, the "x-" versions of these unregistered MIME types may be used.
 
  
 
IMPLEMENTATION recommendations and patches: see [[MIME-Migration]].
 
IMPLEMENTATION recommendations and patches: see [[MIME-Migration]].
  
== .ogx - application/ogg ==
+
== .ogg - audio/ogg ==
  
* Ogg Multiplex Profile (anything in [[Ogg]])
+
* Ogg Vorbis I Profile
* can contain any logical bitstreams multiplexed together in an ogg container
+
* .ogg applies now for Vorbis I files only
* will replace the .ogg extension from RFC 3534 http://www.ietf.org/rfc/rfc3534.txt
+
* .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
* random multitrack files SHOULD contain a [[Skeleton]] track to identify all containing logical bitstreams
+
* has been defined in RFC 3534 for application/ogg, so rfc 3534 will be re-defined
* 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
 
  
== .oga - audio/ogg ==
+
RATIONALE: .ogg has traditionally been used for Vorbis I files, in particular in HW players, hence it is kept for backwards-compatibility
 
 
* 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.
 
* USE: while the MIME application process is under way, use "audio/x-ogg"
 
 
 
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 32: Line 19:
 
* covers e.g. [[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
 
* This list is not exhaustive (for example, [[Dirac]] + FLAC is acceptable too)
 
* This list is not exhaustive (for example, [[Dirac]] + FLAC is acceptable too)
* May contain Ogg Skeleton and/or CMML logical bitstreams.
+
* SHOULD contain a Skeleton track and/or MAY contain a CMML logical bitstream.
 +
 
 +
== .opus - audio/ogg ==
 +
 
 +
* Ogg Opus profile
 +
* Defined by https://tools.ietf.org/html/rfc7845
  
== .ogg - audio/ogg ==
+
== .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, Opus 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 Vorbis I Profile
+
== .ogx - application/ogg ==
* .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
+
* 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
 +
* 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
  
 
== .spx - audio/ogg ==
 
== .spx - audio/ogg ==
Line 54: Line 56:
 
== .anx - application/annodex ==
 
== .anx - application/annodex ==
  
 +
* THIS FILE FORMAT IS DEPRECATED.
 
* Profile for multiplexed Ogg that includes a skeleton track and at least one CMML logical bitstream
 
* 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 identify a logical bitstream which they cannot decode SHOULD ignore it but MAY still decode the ones they can
Line 60: Line 63:
 
== .axa - audio/annodex ==
 
== .axa - audio/annodex ==
  
 +
* THIS FILE FORMAT IS DEPRECATED.
 
* 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]], [[Opus]], [[Ghost]], [[OggPCM]] inside Ogg with Skeleton and CMML
  
 
== .axv - video/annodex ==
 
== .axv - video/annodex ==
  
 +
* THIS FILE FORMAT IS DEPRECATED.
 
* 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 73: Line 78:
 
* Covers [[XSPF]], while being used through XML
 
* Covers [[XSPF]], while being used through XML
 
* Does not cover [[JSPF]], which is XSPF but on JSON
 
* 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 ==
 
== Codec MIME types ==
Line 82: Line 95:
 
* audio/speex for Speex without container
 
* audio/speex for Speex without container
 
* audio/flac for FLAC without and in native container
 
* audio/flac for FLAC without and in native container
 +
* audio/opus for Opus without container
 
* text/cmml for CMML without container
 
* text/cmml for CMML without container
 +
* application/kate for the textual representation of Kate (.kate files)

Latest revision as of 20:09, 30 April 2016

STATUS: RFC 5334 encapsulates the below listed policies. More details are here, which also include a specification of the codecs parameter of the MIME types. Use the correct file extensions straight away.


IMPLEMENTATION recommendations and patches: see MIME-Migration.

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

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

.opus - audio/ogg

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

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

.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

  • THIS FILE FORMAT IS DEPRECATED.
  • 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

  • THIS FILE FORMAT IS DEPRECATED.
  • 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
  • audio/opus for Opus without container
  • text/cmml for CMML without container
  • application/kate for the textual representation of Kate (.kate files)