Chapter Extension: Difference between revisions
Martin.leese (talk | contribs) (Added section headings and details of format + tidy) |
Martin.leese (talk | contribs) (Changed to webvtt-style "-->" timestamp separators (with no whitespace)) |
||
Line 11: | Line 11: | ||
We therefore propose an extensions to VorbisComment for transporting chapters. We introduce VorbisComment fields called CHAPTERxxx and CHAPTERxxxNAME with xxx being a number between 000 and 999. (1000 chapters are assumed to be sufficient.) | We therefore propose an extensions to VorbisComment for transporting chapters. We introduce VorbisComment fields called CHAPTERxxx and CHAPTERxxxNAME with xxx being a number between 000 and 999. (1000 chapters are assumed to be sufficient.) | ||
The value for the CHAPTERxxx field name is the start time of the chapter (Hour:Min:DecimalSeconds), | The value for the CHAPTERxxx field name is the start time of the chapter (Hour:Min:DecimalSeconds), "-->" (U+002D, U+002D, U+003E), and the end time (Hour:Min:DecimalSeconds). See the [[#Examples|examples]] below. | ||
The value for the CHAPTERxxxNAME field name is just a text string (8 bit clean UTF-8 encoded values, as is required for VorbisComments). | The value for the CHAPTERxxxNAME field name is just a text string (8 bit clean UTF-8 encoded values, as is required for VorbisComments). | ||
Line 21: | Line 21: | ||
An example chapter file with two sequential chapters: | An example chapter file with two sequential chapters: | ||
CHAPTER001=00:00:00.000-00:05:00.000 | CHAPTER001=00:00:00.000-->00:05:00.000 | ||
CHAPTER001NAME=Chapter 1 | CHAPTER001NAME=Chapter 1 | ||
CHAPTER002=00:05:00.000-00:10:00.000 | CHAPTER002=00:05:00.000-->00:10:00.000 | ||
CHAPTER002NAME=Chapter 2 | CHAPTER002NAME=Chapter 2 | ||
Another example chapter file with a chapter and three hierarchically structured subchapters: | Another example chapter file with a chapter and three hierarchically structured subchapters: | ||
CHAPTER001=00:00:00.000-00:06:00.000 | CHAPTER001=00:00:00.000-->00:06:00.000 | ||
CHAPTER001NAME=Chapter 1 | CHAPTER001NAME=Chapter 1 | ||
CHAPTER002=00:00:00.000-00:02:00.000 | CHAPTER002=00:00:00.000-->00:02:00.000 | ||
CHAPTER002NAME=Chapter 1.1 | CHAPTER002NAME=Chapter 1.1 | ||
CHAPTER003=00:00:02.000-00:04:00.000 | CHAPTER003=00:00:02.000-->00:04:00.000 | ||
CHAPTER003NAME=Chapter 1.2 | CHAPTER003NAME=Chapter 1.2 | ||
CHAPTER004=00:00:04.000-00:06:00.000 | CHAPTER004=00:00:04.000-->00:06:00.000 | ||
CHAPTER004NAME=Chapter 1.3 | CHAPTER004NAME=Chapter 1.3 | ||
Revision as of 14:16, 9 March 2012
Chapters are a means of providing direct and semantically relevant navigation points for a media file. On particular use case are so-called "enhanced podcasts", i.e. audio files with additional chapter markers.
Chapters are typically provided for a recorded file, not for a live resource.
Since chapters are used for navigation - in particular to avoid having to listen to large amounts of undesired content in order to get to desired content - it is important that the information about chapters is available at the start of a media file to be able to be displayed without having to decode the media file. Therefore, we regard chapters as header-style metadata.
Header-style metadata has traditionally been transported in VorbisComment headers inside Ogg.
Format
We therefore propose an extensions to VorbisComment for transporting chapters. We introduce VorbisComment fields called CHAPTERxxx and CHAPTERxxxNAME with xxx being a number between 000 and 999. (1000 chapters are assumed to be sufficient.)
The value for the CHAPTERxxx field name is the start time of the chapter (Hour:Min:DecimalSeconds), "-->" (U+002D, U+002D, U+003E), and the end time (Hour:Min:DecimalSeconds). See the examples below.
The value for the CHAPTERxxxNAME field name is just a text string (8 bit clean UTF-8 encoded values, as is required for VorbisComments).
This should basically support the same input format that Matroska chapters support, too.
Examples
An example chapter file with two sequential chapters:
CHAPTER001=00:00:00.000-->00:05:00.000 CHAPTER001NAME=Chapter 1 CHAPTER002=00:05:00.000-->00:10:00.000 CHAPTER002NAME=Chapter 2
Another example chapter file with a chapter and three hierarchically structured subchapters:
CHAPTER001=00:00:00.000-->00:06:00.000 CHAPTER001NAME=Chapter 1 CHAPTER002=00:00:00.000-->00:02:00.000 CHAPTER002NAME=Chapter 1.1 CHAPTER003=00:00:02.000-->00:04:00.000 CHAPTER003NAME=Chapter 1.2 CHAPTER004=00:00:04.000-->00:06:00.000 CHAPTER004NAME=Chapter 1.3
WebVTT
A more modern means of specifying chapters is through WebVTT files that use cues with chapter titles.