[Flac-dev] Re: [advocacy] Project Announcement : New Media Container
Format 'matroska'
Steve Lhomme
steve.lhomme at free.fr
Sat Dec 7 16:35:03 PST 2002
Monty wrote:
> On Sat, Dec 07, 2002 at 10:29:29PM +0100, ChristianHJW wrote:
>
> >Please allow me to announce the creation of a new open source Media
> >Container Format, named 'matroska'
> >
> >Project page is here http://sf.net/projects/matroska ; homepage is
> >http://matroska.sourceforge.net , HTML should be online soon.
>
> Another redundant project?
Well, if you think anything new with just a few variations is redundant,
then it surely is. As OGG and Vorbis are too and a thousand other
projects I won't name here (vi vs pico vs emacs, etc).
> "ten BSD programmers are sealed in a computer lab for a month. At the
> end of the month, the door is opened. Investigators discover,
> bloodied and dead, all ten programmers--- and thirteen new flavors of
> BSD."
Yeah, it's sad but true (that this could exist).
> >I am personally not happy about the fact that we had to found a new
> project,
> >but it seems that it was the only alternative now. Of course we are well
> >aware of the fact that both projects will become weaker this way, but we
> >hope to be able to release the container including creation tools and
> >playback filters until January/February 2003, and then the users will
> decide
> >what format they prefer.
>
>
> This announcement is not about 'letting the users decide'. You
It wasn't sent to users, but developpers. Users will decide later. But
as some people heard of MCF, the same one would probably like to know
about matroska. In a perfect world I would expect technical person to
get a minimum interrest and if they find it interresting, dig more in
the specs. But since it hardly happened with MCF, I doubt it will with
matroska. Apparently people prefer to code, comment the code and later
analyse what they did. We tried and keep on trying the reverse way :)
BTW, for the record, Matroska is a simplified version of matrioshka (or
MATPËWKA in russian), the original name of the russian dolls. The idea
comes from me and Frank Klemm gave us the name in russian. It just
symbolises the fact that, like IFF formats, Matroska contains other
Matroska elements.
> haven't released or produced anything yet. This is the grown-up
> equivalent of declaring 'I didn't get to do it my way, so I'm taking
> my toys home with me' and watching to see which kids in the crowd are
> going to follow you home. We're on the way to having every dissident
> hacker pushing his own incompatable container format, most based on
> someone else's container format. OK, sure, whatever.
Well, this is not exactly what is happening. Tronic gave me full control
of the MCF specs and that's exactly what I did. I tried to take the
specs and add what we thought would be needed/good/possible features.
And I ended up with Matroska which borrows a lot from MCF, but is very
different in the "syntax". So basically it was meant to become MCF v1
very soon, as the format is passing Round 1 soon (see spec for more
details). But now Tronic is back and don't want MCF to become that
format I worked on. And since I consider it fills all past missing gaps
in the specs and is far superior in expandability, I don't want that
format to die.
There is also a libmcf library already existing that I coded 90% a while
back. And since MCF and Matroska are twins this code will be used for
libmatroska, and I think we'll be able to parse/create Matroska files
quite fast (we're only missing UCI then).
> "Step one: Achieve something. Step two: toot horn"
I strongly agree with this. But Christian's announcement wasn't to
announce that the format is final and the code is existing (AFAIK
neither OGG nor Vrobis are final), just that it has been created. He
didn't even tell the most important : it is already far closer to be
final and a working code is not far neither. So this is no vaporware (as
MCF tended to be perceived like).
> If you were really interested only in doing something different or
> trying out something new, you'd just have gone off and done it, and
> let the world know if it did/didn't work out. We already went through
> all this a year or two ago when you all declared the beginning of MCF
> and sent mail to the Ogg lists that it would be better than our
> project in every way and we should abandon Ogg and use MCF. It was
> quite the initial introduction and left a lasting impression. So,
> I'll repeat a previous flame that the original MCF folks never really
> rebutted (just seemed to ignore).
Yes, I know it sounded like vaporware. But in the mean time a lot of
work has been done, lots of people contacted, only few reactions, even
fewer help. And the result of all this (unknown) work from the 2 most
active person in the MCF team is now turning into a new project.
> Quite a few MCF proponents keep touting things that Ogg can't
> do... except they're wrong. For example, somone told with great
> confidence on HA that he was going with MCF because there was no way
> to figure out what codecs Ogg used and that each mixed stream type was
> hardwired. That would really suck if it were true. It isn't.
I don't want to start a long falme war (we all have better things to
do), so I won't reply here. If you want my point of view, just email me
in private.
> Looking at it from a high level, Ogg (the software) is full of feature
> hooks for which no one has written the code yet. But it's apparently
> easier to start from scratch (again), effectively abandoning a half
> completed system that's already running, solid, and deployed
> worldwide, and then use my own lists to pull people out of the project
> that works and has forward momentum. A second time. It's in poor
> taste all over again.
We never said OGG should be abandoned. We just hope MCF-now-Matroska
will fill all the needed use for a multimedia container, so that
probably (hopefully) covers all that OGG can do. It might sound
pretentious but all this year I've been working hard (not alone and I've
learned a lot from other people) on just a container. Something
versatile and build to last long (even though we can't predict the future).
> Personally, my position is that XML (binary or no) belongs in a stream
> or at a higher non-linear level-- not defining the lowest level
> transport attributes. The correct way to build a large system is not
> to smash every conceivable feature into a single monolithic API layer.
> Build small pieces that work together.
Well, yes that's a difference in our point of view. I don't know OGG
very well, but it seems that you went a level too low in the format
(AFAIK all is based on small packets of data). This is actually only
usefull on a limited number of transport layers like streaming (I've had
a look at the draft RFC for OGG in RTP). For most of the time it's
overkill. So we avoid that part. For streaming, we have already thought
about it (to make sure the format could fit in) with Frank Klemm. And
he's actually been working a lot lately on the way it should be
technically done and what ECC would be needed for reliable transport
(even over UDP). So even this possibility is not left out of what we
want to do/cover.
>
> We here at Xiph started with:
>
> 1) a nice, robust linear transport layer that's optimized specifically
> and only for linear transport, ie, 'does one thing very well and can
> be used to build larger things'
>
> 2) filters, aka OggFile, the first 'larger thing', now in progress
> along with resource usage optimizations (eg, zero-copy).
>
> We're going to get that right before building a huge feature-rich
> system on a foundation that's unproven / doesn't exist.
Well, that's one way of doing. We try to think in advance, from very low
level, coding to high level and interfacing with the rest of the
world/OSes. And then code. Sadly we don't have the coding resources or
support Xiph has (been building) so our solution seem to be appropriate
to what we do. We can't afford to code 10 different non working
versions, but we already coded 2 minimal parsers for MCF and it's
working well.
> In summary, I'd prefer you let the people here who have demonstrated
> they're capable of working together without forking continue to do so
> without this ongoing pseudotechnical distraction.
I didn't see anything in Christian's message that would let you think we
want to distract people. And nothing against OGG (which I assume you're
talking about). So I would be glad if you would not try to discourage
anyone to get interrest in our project as much as we don't force anyone
to leave OGG. I just hope you don't consider OGG as the one and only
format. (this is the polite version)
> (And if you want to do something productive with XML, how about
> contribute to the metaheader or XML page stream type in Ogg? Hmmm?)
Because so far, all the contacts I had with you and other people of the
OGG/Vorbis was never friendly (this message is just one more example).
This is a major reason for me. For example we leave the MCF project in
good terms and I will still be a (small) part of it. Working "against"
people is something I want to avoid.
More information about the Flac-dev
mailing list