[whatwg] Give guidance about RFC 4281 codecs parameter
silviapfeiffer1 at gmail.com
Tue Apr 10 01:33:54 PDT 2007
Hi Charles, Dave,
On 4/10/07, Charles Iliya Krempeaux <supercanadian at gmail.com> wrote:
> On 4/9/07, Dave Singer <singer at apple.com> wrote:
> > * Theora video and Vorbis audio in Ogg container. (application/ogg; .ogg)
> > * Dirac video and Vorbis audio in Ogg container. (application/ogg; .ogg)
> > * Theora video and Vorbis audio in Matroska container. (video/x-matroska;
> > * Dirac video and Vorbis audio in Matroska container. (video/x-matroska;
> > My understanding is that the Ogg container is 'specific' to these codecs,
> and therefore the codecs parameter is not needed. But I am not an Ogg or
> Matroska expert; perhaps they could chime in?
> No. The containers are independent of the codecs put inside.
> However, whether software, that supports Ogg or Matroska containers will
> actually be able to "play" other codecs is another issue altogether.
Yes, the codecs are independent of the containers.
Xiph is using multiple MIME types to deal with this situation.
* application/ogg (http://www.rfc-archive.org/getrfc.php?rfc=3534)
provides for the container format, basically with any codecs included:
this could e.g. be Theora/Vorbis inside Ogg or Dirac/Vorbis inside
Ogg, but is not restricted to this.
Xiph has defined a Skeleton track for Ogg files through which the
MIME type of the contained codecs is specified at a known location in
the header of the Ogg file. Thus, a Ogg Theora/Vorbis File with a
skeleton track will have a MIME type of application/ogg and contain
two tracks with video/x-theora and audio/x-vorbis as the MIME types.
Xiph encourages everyone to use the Skeleton track in all future
created Ogg files. Skeleton is built into a standard Ogg container
format (as defined in RFC 3533
http://www.rfc-archive.org/getrfc.php?rfc=3533) and thus Ogg files
with Skeleton are compatible with Ogg files without Skeleton.
* audio/x-vorbis is used to specify the vorbis codec. This is of
particular importance in rtp/rtsp streaming applications.
* video/x-theora is particularly used to specify the theora codec.
The community has also been seen to use these specifications:
# audio/x-vorbis+ogg for Ogg Vorbis files
# video/x-theora+ogg for Ogg Theora/Vorbis files
though Xiph is not supportive of these.
Recent discussion at Xiph around http://www.ietf.org/rfc/rfc4281
suggests the use of the following parameters:
# application/ogg; codecs="theora, vorbis" for Ogg Theora/Vorbis files
# application/ogg; codecs="theora, speex" for Ogg Theora/Speex files
# application/ogg; codecs="vorbis" for Ogg Vorbis files
and also use the disposition parameter:
# application/ogg; disposition=moving-image; codecs="theora, vorbis"
# application/ogg; disposition=sound; codecs="speex"
Skeleton and the use of these MIME parameters should make things clear
for the application developers.
>> We did have the discussion over profiles of these codecs; I
>> are not used, but I am still unclear as to which of the following is true:
>> a) features are never added to the bitstreams, so any release of the decoder
>> will decode bitstreams made by any release of the encoder (modulo bugs);
>> b) the decoder release needed is signalled somehow in the bitstream
>> least the April 2005 release or later to decode this file')
>> c) neither of the above are true, it's left to the users to stay up
to date, and if
>> they don't, then, well, that's their problem.
In reply to this: Xiph has very carefully created and frozen (1st June
2004) a definition of the theora codec bitstream format, which should
be persistent for a while to come. So, while it is possible that there
may be new features added, it is not currently a consideration. There
are still multiple rounds of software optimisation possible to theora
encoders before they will require a change to the bitstream format.
For the case of a bitstream format change, there is version
information in the header of a theora bitstream. Major and minor
version numbers are being used similarly to the way that *nix library
version numbers work - anything with a minor change is backwards
compatible, but a major change may not be. So, if a major version
number change was to occur with theora, a new MIME type would probably
be required, e.g. video/x-theora2.
I hope this answers the question?
More information about the whatwg