[Matroska-users] mkvtoolnix 1.0 plan: About 64bit

Moritz Bunkus moritz at bunkus.org
Thu Aug 5 09:21:33 CEST 2004


> I tested Ogg Vorbis -> MKA, to see if 64-bit will give me better 
> precision in duration. But the result was what was quite 
> unexpected for me:

Duration for Vorbis is broken.

> (2) 64-bit would mean, 
> .00000000000000001
> in this time scale, but actually, the general precision of the 
> Matroska system is like,
> .001
> or
> .01
> sec.
> If so, is 64-bit really needed?

Thorough misunderstanding of what 64bit means in this case. In Matroska
all durations and all timecodes are scaled by the global timecode scale
value. Newer Matroska builds chose the timecode scale factor so that
timecodes and durations are accurate to the _sample_ - not to
0.00000000000000001 or however many 0s there are.

So what about the 64bit thingy? The problem with 32bit floats is that
the part after the . simply has a too small resolution to store the
duration in sample precision. 64bit floats have a much higher precision,
and _if the Vorbis packetizer would correctly extract the duration from
the Vorbis packets_ then the segment duration would be what you expect
it to be.

> (3) mkvmerge is "lossy" in duration info, and the error is like 
> 0.01 sec. So, in theory, if you concatenate 100 MKA files, say, 
> in audio editing, then the result could have as much error as 1 
> whole sec. What if you muxed such .mka and video in .avi?
> 1.0 sec out of sync, would be very embarrassing.

Wrong for the reasons given above.


If Darl McBride was in charge, he'd probably make marriage
unconstitutional too, since clearly it de-emphasizes the commercial
nature of normal human interaction, and probably is a major impediment
to the commercial growth of prostitution. - Linus Torvalds

More information about the Matroska-users mailing list