Haali
1st September 2005, 19:54
Chapters in Matroska are grouped in independent sets called Editions. Each edition has a few attributes, these are:
Title - this is displayed to the user
Hidden flag - if this is set, then the edition is not show in UI
Default flag - the first Edition with this flag is selected when file is opened.
Ordered flag - this one turns on the heavy magic.
Normally chapters are only points on a movie's timeline that you can seek to. Ordered chapters are quite different. In Matroska chapters have these main attributes:
Titles - this is displayed to the user, can be in different languages
Start time - the seek point for normal chapters
End time - not used in normal chapters
SegmentUID - not used in normal chapters
+ a few others
When ordered chapters are used, the edition acts as an edit list instead, and a virtual timeline is constructed from them. Let's look at a simple example:
;Title, StartTime, EndTime
Chapter 1, 00:00, 02:15
Chapter 2, 04:10, 05:00
Chapter 3, 03:00, 04:00
The splitter constructs a virtual segment of length 4:05 from this list, and plays parts of file in order: first the piece from 00:00 to 02:15 is shown, then the piece from 04:10 to 05:00, and last 03:00 to 04:00. Internally seeks are done, but they are hidden from user. The user sees a single four minute movie with seamless transitions between parts.
By default ordered chapters refer to the same Matroska file, but if you specify SegmentUID for a chapter, then the content is pulled from external file. External files must reside in the same folder as the original file and must have the same number of tracks and the same codecs.
This functionality allows many neat tricks, like
* Having editions with intro/outro and without them in the same file
* Having intro/outro in separate files that are linked on the fly to the series body
* Small files with chapters only that allow playing the entire series as one movie
* and many others
Recently I added support for different AR and picture sizes in different linked files, while still requiring the same codec.
I hope this explains one of the more obscure parts of Matroska.
Title - this is displayed to the user
Hidden flag - if this is set, then the edition is not show in UI
Default flag - the first Edition with this flag is selected when file is opened.
Ordered flag - this one turns on the heavy magic.
Normally chapters are only points on a movie's timeline that you can seek to. Ordered chapters are quite different. In Matroska chapters have these main attributes:
Titles - this is displayed to the user, can be in different languages
Start time - the seek point for normal chapters
End time - not used in normal chapters
SegmentUID - not used in normal chapters
+ a few others
When ordered chapters are used, the edition acts as an edit list instead, and a virtual timeline is constructed from them. Let's look at a simple example:
;Title, StartTime, EndTime
Chapter 1, 00:00, 02:15
Chapter 2, 04:10, 05:00
Chapter 3, 03:00, 04:00
The splitter constructs a virtual segment of length 4:05 from this list, and plays parts of file in order: first the piece from 00:00 to 02:15 is shown, then the piece from 04:10 to 05:00, and last 03:00 to 04:00. Internally seeks are done, but they are hidden from user. The user sees a single four minute movie with seamless transitions between parts.
By default ordered chapters refer to the same Matroska file, but if you specify SegmentUID for a chapter, then the content is pulled from external file. External files must reside in the same folder as the original file and must have the same number of tracks and the same codecs.
This functionality allows many neat tricks, like
* Having editions with intro/outro and without them in the same file
* Having intro/outro in separate files that are linked on the fly to the series body
* Small files with chapters only that allow playing the entire series as one movie
* and many others
Recently I added support for different AR and picture sizes in different linked files, while still requiring the same codec.
I hope this explains one of the more obscure parts of Matroska.