Popular Posts


Matroska Structure Diagram

Post a Comment

A Matroska document MUST be composed of as a minimum one EBML Document using the Matroska Document Type.Each EBML Document MUST begin with an EBML Header and MUST be accompanied via the EBML Root Element,defined as Segment in Matroska. Matroska defines several Top Level Elementswhich MAY occur within the Segment.

As an example, a simple Matroska file such as a unmarried EBML Document might be represented like this:EBML HeaderSegment

A extra complex Matroska report which include an EBML Stream (along with two EBML Documents) may be represented like this:EBML HeaderSegmentEBML HeaderSegment

The following diagram represents a easy Matroska file, constituted of an EBML Documentwith an EBML Header, a Segment Element (the Root Element), and all 8 MatroskaTop Level Elements. In the following diagrams of this section, horizontal spacing expressesa parent-toddler relationship among Matroska Elements (e.g., the Info Element is contained withinthe Segment Element) whereas vertical alignment represents the storage order within the record8 Top Level Elements: SeekHead, Info, Tracks,Chapters, Cluster, Cues, Attachments, and Tags.

The SeekHead Element (also called MetaSeek) carries an index of Top Level Elementslocations within the Segment. Use of the SeekHead Element is RECOMMENDED. Without a SeekHead Element,a Matroska parser would have to search the entire file to find all of the different Top Level Elements.This is due to Matroska’s flexible ordering requirements; for instance, it's far suited forthe Chapters Element to be saved--------------contains vital statistics for identifying the whole Segment.This consists of the name for the Segment, a randomly generated unique identifier,and the particular identifier(s) of any connected------------------details for each song and can keep the call,quantity, particular identifier, language, and kind (audio, video, subtitles, and so forth.) of each song.For example, the Tracks Element MAY store records approximately the decision of a video trackor pattern price of an audio track.

The Tracks Element MUST identify all the facts wished by means of the codec to decode the data of thespecified track. However, the facts required is contingent on the codec used for the tune.For instance, a Track Element for uncompressed audio simplest requires the audio bit price to be present.A codec which includes AC-three could require that the CodecID Element be present for all tracks,as it is the number one way to identify which codec to apply to decode the songselection of its Descendant Elements.

The Chapters Element lists all the chapters. Chapters are a manner to set predefinedpoints to leapselection of its Descendant Elements.

Cluster Elements include the content material for every tune, e.g., video frames. A Matroska fileSHOULD include at least one Cluster Element. The Cluster Element allows to interrupt upSimpleBlock or BlockGroup Elements and allows with in search of and errors protection.It is RECOMMENDED that the scale of each man or woman Cluster Element be restricted to storeno extra than 5 seconds or 5 megabytes. Every Cluster Element MUST incorporate a Timestamp Element.This SHOULD be the Timestamp Element used to play the primary Block within the Cluster Element.There SHOULD be one or more BlockGroup or SimpleBlock Element in each Cluster Element.A BlockGroup Element MAY incorporate a Block of records and any information concerning immediatelyinstantstructure.

Each Cluster MUST contain precisely one Timestamp Element. The Timestamp Element fee MUSTbe stored as soon as in step with Cluster. The Timestamp Element inside the Cluster is relative to the complete Segment.The Timestamp Element SHOULD be the primary Element within the Cluster.

Additionally, the Block includes an offset that, whilst delivered to the Cluster’s Timestamp Element cost,yields the Block’s effective timestamp. Therefore, timestamp within the Block itself is relative tothe Timestamp Element in the Cluster. For example, if the Timestamp Element within the Clusteris set to 10 seconds and a Block in that Cluster is meant to be performed 12 seconds into the clip,the timestamp inside the Block could be set to two seconds.

The ReferenceBlock within the BlockGroup is used rather than the fundamental “P-frame”/”B-frame” description.Instead of without a doubt pronouncing that this Block relies upon on the Block without delay earlier than, or immediately afterwards,the Timestamp of the vital Block is used. Because there can be as many ReferenceBlock Elementsas important for a Block, it lets in for a few extremely complicated referencing.

The Cues Element is used to are searching for while playing lower back a file by imparting a temporal indexfor some of the Tracks. It is just like the SeekHead Element, but used for searching for toa specific time whilst gambling back the file. It is feasible to are seeking with out this detail,but it is lots more hard due to the fact a Matroska Reader might should ‘hunt and percent’via the record looking for an appropriate timestamp.

The Cues Element SHOULD contain as a minimum one CuePoint Element. Each CuePoint Elementstores the position of the Cluster that contains the BlockGroup or SimpleBlock Element.The timestamp is stored within the CueTime Element and location is saved within the CueTrackPositions Element.

Related Posts

Post a Comment