MIME Types and File Extensions: Difference between revisions
No edit summary |
|||
(30 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
STATUS: | 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, | 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]]. | IMPLEMENTATION recommendations and patches: see [[MIME-Migration]]. | ||
Line 10: | 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 | * 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 | * apps that identify a logical bitstream which they cannot decode SHOULD ignore it but MAY still decode the ones they can | ||
* thus, . | * 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 == | == .ogv - video/ogg == | ||
Line 29: | Line 21: | ||
* 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) | ||
* | * SHOULD contain a Skeleton track and/or MAY contain a CMML logical bitstream. | ||
== .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 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 applies now for Vorbis I files only | ||
* .ogg has more recently also been used for Ogg FLAC and for | * .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 | 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 | == .spx - audio/ogg == | ||
* Ogg Speex Profile | * Ogg Speex Profile | ||
* .spx has traditionally been used for | * .spx has traditionally been used for Speex files within Ogg and should be considered for backwards-compatibility | ||
== .flac - | == .flac - audio/flac == | ||
* | * FLAC in native encapsulation format | ||
== .anx - application/annodex == | == .anx - application/annodex == | ||
Line 53: | Line 54: | ||
* 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 | ||
* 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 == | == .axa - audio/annodex == | ||
* Profile for audio in | * 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 | * 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 | ||
== .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 == | == 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 | * audio/flac for FLAC without and in native container | ||
* text/cmml for CMML without container | * text/cmml for CMML without container | ||
* application/kate for the textual representation of Kate (.kate files) |
Revision as of 00: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.
.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
- 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
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)