The biggest aggravation is the fact that we have a container that is:
1. Reasonably well-designed.
2. Patent-free with a dozen free implementations.
3. Widely-used, far more so than Ogg.
4. General, with the ability to contain nearly any video, audio, or subtitle format.
5. Fully-featured, with the ability to compete effectively with MP4 and other popular container formats.
6. Supported by DivX as the replacement for AVI.
It's called Matroska. And practically everyone promoting Ogg pretends that it doesn't exist.
My theory is that the difference is one of control. Having talked to many Ogg evangelists, this seems to be the problem: Matroska allows you to use video and audio formats that Xiph doesn't like. Ogg does not. Therefore, Ogg is "more free" because it doesn't let you do what you want. It's much the same argument as GPL vs BSD: the GPL is "more free" because it places more restrictions upon users/distributors of the software.
Is the matroska project active? Their website seems to have bitrotted. Their SVN links don't work, the right hand side menu links to take you to the 'Project' are 404's.
What you can do with Ogg (and MPEG-1&2 PS) is to jump into middle of stream and play it from there (think broadcast radio or TV). You can't do that with Matroska (or MPEG-4 system for that matter), becuase you always need header at the beginning of file.
It's called Matroska. And practically everyone promoting Ogg pretends that it doesn't exist.
My theory is that the difference is one of control. Having talked to many Ogg evangelists, this seems to be the problem: Matroska allows you to use video and audio formats that Xiph doesn't like. Ogg does not.
Every Vorbis/Theora video I've ever seen, which isn't distributed on the web, is contained in Matroska. Ogg is the "default" because of Mozilla, not due to some Xiph conspiracy. There are three reasons Matroska isn't more heavily used:
1. Ogg is the dominant format for free audio. I've tried to use Matroska for storing audio (.mka), but most tools have poor or no support for it. I believe a large part of this is because Matroska's metadata support is even more poorly documented than Ogg's. At least Ogg has some de-facto standards for how metadata should be included; Matroska,̶ ̶a̶s̶ ̶f̶a̶r̶ ̶a̶s̶ ̶I̶ ̶c̶a̶n̶ ̶t̶e̶l̶l̶,̶ ̶i̶s̶ ̶c̶o̶m̶p̶l̶e̶t̶e̶l̶y̶ ̶f̶r̶e̶e̶-̶f̶o̶r̶m̶ ̶(̶a̶n̶d̶ ̶t̶h̶u̶s̶ ̶u̶n̶u̶s̶a̶b̶l̶e̶)̶ has some standard tags, but few libraries can read them. The Matroska developers should sit down and either a) document the existing system or 2) figure out a new one. Then, help get support into common media libraries such as GStreamer or TagLib. Once I can store audio in Matroska, it's easier to encourage its use on the web.
2. Mozilla doesn't like depending on platform libraries, even if they're cross-platform, since history has shown that they tend to be more trouble than they're worth. Look at the Mozilla C++ style guide; half of it is dedicated to avoiding C++ features as simple as namespaces or exceptions because some obscure platforms don't support them well. Therefore, they won't support GStreamer or QuickTime, and support for any format has to be included in the Mozilla repository directly.
3. Since #1 means Ogg must be supported, and #2 means there's a huge disincentive to support more than the bare minimum of formats, Matroska is seen as too much trouble to support. I think this won't change until more users request it.
For what it's worth, here's Mark Pilgrim's opinion on Matroska, after I requested at least a sentence or two be included in his new HTML 5 book (which covers such unused fossils as AVI and XVid):
> Could you add a paragraph on the Matroska[1][2] container format to
> the list of containers?
I could, but no browser supports it (even those that support
Theora-in-Ogg), so there's little point. Then again, I do mention AVI,
which no browser supports either, but that's mostly because I think
most readers would be familiar with it. Few people have heard of MKV
except Free Software hippies and movie pirates. :-)
If it actually lands in Firefox or some other browser, I'll revisit
this decision.
Whereas ogg metadata is codec-dependant. In practice though, most (not all!) codecs in ogg just use vorbis comments, where the only official tags are http://xiph.org/vorbis/doc/v-comment.html
2. Mozilla's C++ style guide hasn't been updated since like 1996, when C++ was still grossly compiler-dependant. It shouldn't be taken as anything other than a sign that that's the era in which Mozilla is stuck.
It's been a while since I looked at the metadata standards, but it's my memory that there are two: one that is "deprecated", supports only a few tags, and is supported by libraries,, and the "new" format you linked to, which is the "way forward" but so far completely unsupported by anything.
The specific problems I remember are that the ReplayGain tag contents are unspecified (decimal, like Vorbis/FLAC? IEEE754 half, single, double in some endianness?), there's no support for cover art, and the "examples" are all broken links. In my opinion, FLAC has the best metadata support -- Vorbis is close, but its cover art support is a catastrophe.
No clue what the depreciated version might be, as far as I know what I linked to hasn't changed since sometime around 2005 (which would explain any broken links.)
Cover art wasn't specifically defined in mkv I think, but it became standard to do an attachment named cover.jpg for it.
The "original" 9-bit fixed-point encoding isn't widely used; most formats use a 32- or 64-bit float, or the number encoded as a string. One of the Matroska developers posted on the HydrogenAudio forums[1] saying they use a 32-bit float, but the spec he quotes later[2] is different than what's on the actual Matroska site.
Do you know if the cover.jpg standard is documented anywhere? Searching for "matroska cover.jpg" just yields a bunch of bittorrent sites.
I guess robux4 was talking about the old system, which I honestly didn't know existed before you brought it up. If the new system doesn't use the 16 bit format then yeah, it isn't well specified.
Metadata support is ridiculously awful in [Matroska, OGM, FLAC, OGG], in amounts increasing in that order.
If you want metadata to work consistently, use a MP4 / QT container. If you want alternate tracks (for subtitles and audio) to work consistently, use Matroska.
> If you want alternate tracks (for subtitles and audio) to work consistently, use Matroska.
And avoid GStreamer-based players. Totem is absolutely horrible if the subtitles are complicated (i.e. karaoke timing or multi-language). VLC seems to get it right most of the time.
Yes. Matroska's index is optional, and thus one should be able to stream it simply by omitting the index.
I suspect many existing implementations are suboptimal for streaming though simply because almost nobody uses it that way and so they have not been as tested as they otherwise would be. But this is easy to solve since the format itself already supports streaming.
is there a server and client that supports it?
from http://www.matroska.org/technical/guides/faq/index.html
Will Matroska be streamable? Yes, but low bitrate streaming like streaming Vorbis, will always be better in Ogg. This is because their design is for different purposes.
They're referring to (at the time it was written) streaming Vorbis using Ogg, which is not at all an unreasonable thing to do. Ogg was originally designed to contain Vorbis, and thus Vorbis-in-Ogg is not particularly evil or difficult to deal with. Ogg only became seriously problematic when they tried to extend it to include things that it wasn't originally designed to be able to do.
1. Reasonably well-designed.
2. Patent-free with a dozen free implementations.
3. Widely-used, far more so than Ogg.
4. General, with the ability to contain nearly any video, audio, or subtitle format.
5. Fully-featured, with the ability to compete effectively with MP4 and other popular container formats.
6. Supported by DivX as the replacement for AVI.
It's called Matroska. And practically everyone promoting Ogg pretends that it doesn't exist.
My theory is that the difference is one of control. Having talked to many Ogg evangelists, this seems to be the problem: Matroska allows you to use video and audio formats that Xiph doesn't like. Ogg does not. Therefore, Ogg is "more free" because it doesn't let you do what you want. It's much the same argument as GPL vs BSD: the GPL is "more free" because it places more restrictions upon users/distributors of the software.