Chapter Extension
From XiphWiki
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.
Contents |
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
Further Fields
Other fields can also be used to support enhanced podcasts:
- a field to extend chapters with a url to navigate to while listening a chapter of a podcast:
CHAPTERxxxURL=http://...
WebVTT
A more modern means of specifying chapters is through WebVTT files that use cues with chapter titles.