[Theora] OGG/OGM media container

illiminable ogg
Tue Jul 6 04:36:23 PDT 2004

<Pine.LNX.4.60.0407060338450.18715 at albani.cs.ubc.ca>
Message-ID: <010b01c4634d$796d62e0$0100000a at tiger>

----- Original Message -----
From: "Nilesh Bansal" <bansal at cs.ubc.ca>
To: <advocay at xiph.org>
Cc: <theora at xiph.org>
Sent: Tuesday, July 06, 2004 6:51 PM
Subject: Re: [Theora] OGG/OGM media container

> >> Is there a difference between ogg and ogm? I guess its only the
> >> that is different and everything else is same.
> >>
> >
> > My understanding is, that the file format is exactly the same, the main
> > difference is the first header in each stream... ogm uses several
> > standardised header formats, audio, video and text, in order to make
> > identifying unknown codecs easier in directshow (and subsequently other
> > frameworks). ie with those three headers you can use any audio or video
> > format you choose without have to write custom header parsing routines
> > each codec in the demuxer.
> So this means ogg/ogm are actually same but ogm uses some standard headers
> while ogg does not put any such restrictions. That is ogm is a ogg, but
> not vice-versa.


> And saying
>    ogg       -    extension for for audio only files
>    ogm       -    extension for audio + video files
> is _wrong_, as the 2 extensions are not just conventions but also differ
> technically (though they are more-or-less similar).

It's a contencious issue ! There are some (like me) who really want
different extensions... including .ogv and .oga .... some platforms just
work better if you can tell whats what by extension.

Something i've just realised today, trying to integrate ogg into WMP's new
media library framework... is you have no choice but distinguish audio and
video by extension if you want it to work properly... no wrappers or other
hacks are going to cut it. If you want to use the media libarary in cluding
features like "Burn audio cd" in media player, you have different extensions
or you can't do it.

To me it makes sense that .ogm and .ogg have different extensions, because
many of the ogg tools and players, in partiular the xiph ones have no
support for ogm... so it just makes it easier to know whats going to work
and whats not.

It only makes sense for .ogm to be dropped if all the ogg tools support it.
And even then, i'd prefer all video to be .ogv which would include theora
videos and ogm.

I'm actually going to have to create the 2 previously proposed new
extensions to get any kind of reasonable user experience in media player
version 9 and later (where the media library framework is introduced)...
with unnoficial mime types audio/x-ogg, video/x-ogg along with the official
.ogg application/ogg.

For my project, it's really down to use one extension, lose user experience,
or use many and be able to utilise the platform in a way that is expected...
and at the end of the day, all i care about is user experience. If users
want it, if it makes the end users life easier and provides them with
functionality they are accustomed to, that's what i'm going to do.

> > OGM headers aren't "officially supported" by xiph. The best way to think
> > ogm is as a codec wrapper, to shield the demuxer from the imlpementation
> > details of the codec headers. Kind of what an api does... it distills
> So xiph "officialy support" ogg and not ogm. But i am not able to find any
> tool to create ogg files. www.xiph.org provide no information about
> either.

What do you mean no information about ogg ? Don't all their tools create ogg
files ? Also the spec for ogg can be found by googling for ogg rfc 3533.
Though i agree there doesn't seem to be any links to it on the existing

> Also, what is status of OGM? Is that stable and usable? If yes why
> mencoder etc, dont provide a option to produce a OGM instead of AVI.

Yes stable and usable and has been for a while, the original oggds codebase
by tobias is pretty stagnant... but i think some folk at doom9 have started
maintaining it. People like it, people want to use it. People like it
because they can use whatever codecs they like best... while we'd like
everyone to start using theora, some poeple like divx and you're not going
to force them to stop using it if they don't want to or they don't think
it's superior for their needs.

> >
> > Matroska is a different project group... i think they represent two
> > different philosophies... matroska is more a kitchen sink format,
> > ogg is an absolute bare bones format. Which you think is better really
> Can you please explain.

Matroska has fields for everything... the spec is pretty damn complex... i
read it for a few hours one day and it made my head hurt ! Ogg is a simlpe
spec, i read it and wrote a demux for it with a few hours work. Ogg
essentially says, specify the bare minimum amount of information and let the
demuxer and the decodecs figure everything else out for themselves. Where
the demuxer needs codec niformation it asks the decoder for it. The
advantage being that it doesn't limit the types of codec you can use it for.
the disadvantage being that in terms of implementation the demuxer becomes
dependant on codecs.

Matroska on the other hand says 99.9% of codecs and all currently used
codecs won't be limited by it and those are the only ones we care about, so
we are going to specify as much information as possible in a standardised
way, so the demuxer never needs to ask the codecs for any help, because the
muxer has already gathered all the information it might need and stored it
in a standard way for the demuxer to use. So the demuxer doesn't ever need
to ask a decoder for codec specific information.

My personal opinion is i'd like somewhere in the middle erring towards
genericity, and ogm was attempt to find some of that middle ground...


More information about the Theora mailing list