Skip to content

Commit

Permalink
Update supported formats and add FAQ entries
Browse files Browse the repository at this point in the history
  • Loading branch information
Mtillmann committed Feb 1, 2024
1 parent 7b96573 commit 880933c
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 16 deletions.
34 changes: 18 additions & 16 deletions .github/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,24 @@ Create and _convert_ chapters for podcasts, youtube, matroska, mkvmerge/nero/vor

## Supported Formats

- `chaptersjson` podcasting 2.0 chapters json file ([spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/chapters/jsonChapters.md))
- `ffmpegdata` ffmpeg metadata format ([spec](https://ffmpeg.org/ffmpeg-formats.html#Metadata-1))
- `matroskaxml` matroska XML format ([spec](https://www.matroska.org/technical/chapters.html))
- `mkvmergexml` MKVToolNix mkvmerge XML format ([spec](https://mkvtoolnix.download/doc/mkvmerge.html#mkvmerge.chapters))
- `mkvmergesimple` MKVToolNix mkvmerge "simple" format ([spec](https://mkvtoolnix.download/doc/mkvmerge.html#mkvmerge.chapters))
- `webvtt` WebVTT chapter format ([spec](https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API))
- `youtube` Youtube description chapter notation
- `ffmpeginfo` (readonly) ffmpeg scene detection output, used internally
- `pyscenedetect` PySceneDetect list-scenes CSV Format ([project home](https://github.com/Breakthrough/PySceneDetect))
- `vorbiscomment` [Vorbis Comment](https://wiki.xiph.org/Chapter_Extension#:~:text=two%20sequential%20chapters%3A-,CHAPTER001,-%3D00%3A00%3A00.0009) format that is slightly different from mkvmergesimple
- `applechapters` [mythical chapter format](https://github.com/rigaya/NVEnc/blob/master/NVEncC_Options.en.md#--chapter-string:~:text=CHAPTER03NAME%3Dchapter%2D3-,apple%20format,-(should%20be%20in)) of unclear origin/spec or purpose
- `edl` Edit Decision List, compatible with [shutter encoder](https://www.shutterencoder.com/en/), unclear actual spec
- `podlove simple chapters` [xml](https://podlove.org/simple-chapters/) and [json](https://github.com/podlove/chapters#:~:text=org/%3E-,Encode%20to%20JSON,-iex%3E%20Chapters) format
- `mp4chaps` [mp4chaps](https://github.com/podlove/chapters#:~:text=%3Achapters%3E-,Encode%20to%20mp4chaps,-iex%3E%20Chapters) format - actual spec unknown
- `applehls` [Apple HLS Chapter](https://developer.apple.com/documentation/http-live-streaming/providing-javascript-object-notation-json-chapters) format - partial support

| name | key | ext | info |
|-------|------|----------|------|
| Podcasting 2.0 Chapters | chaptersjson | `json` | [spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/chapters/jsonChapters.md) |
| FFMetadata | ffmpegdata | `txt` | [spec](https://ffmpeg.org/ffmpeg-formats.html#Metadata-1) |
| Matroska XML chapters | matroskaxml | `xml` | [spec](https://www.matroska.org/technical/chapters.html) |
| MKVToolNix mkvmerge XML | mkvmergexml | `xml` | [spec](https://mkvtoolnix.download/doc/mkvmerge.html#mkvmerge.chapters) |
| MKVToolNix mkvmerge _simple_ | mkvmergesimple | `txt` | [spec](https://mkvtoolnix.download/doc/mkvmerge.html#mkvmerge.chapters) |
| WebVTT Chapters | webvtt | `vtt` | [spec](https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API) |
| Youtube Chapter Syntax | youtube | `txt` | |
| FFMpegInfo | ffmpeginfo | `txt` | read only, used internally |
| PySceneDetect | pyscenedetect | `csv` | [project home](https://github.com/Breakthrough/PySceneDetect) |
| Vorbis Comment Format | vorbiscomment | `txt` | [spec](https://wiki.xiph.org/Chapter_Extension) |
| "Apple Chapters" | applechapters | `xml` | [source](https://github.com/rigaya/NVEnc/blob/master/NVEncC_Options.en.md#--chapter-string:~:text=CHAPTER03NAME%3Dchapter%2D3-,apple%20format,-(should%20be%20in)) |
| Shutter EDL | edl | `edl` | [source](https://github.com/paulpacifico/shutter-encoder/blob/f3d6bb6dfcd629861a0b0a50113bf4b062e1ba17/src/application/SceneDetection.java) |
| Podlove Simple Chapters | psc | `xml` | [spec](https://podlove.org/simple-chapters/) |
| Podlove Simple Chapters JSON | podlovejson | `json` | [source](https://github.com/podlove/chapters#:~:text=org/%3E-,Encode%20to%20JSON,-iex%3E%20Chapters) |
| MP4Chaps | mp4chaps | `txt` | [source](https://github.com/podlove/chapters#:~:text=%3Achapters%3E-,Encode%20to%20mp4chaps,-iex%3E%20Chapters) |
| Apple HLS Chapters | applehls | `json` | [spec](https://developer.apple.com/documentation/http-live-streaming/providing-javascript-object-notation-json-chapters), partial support |

## CLI

Expand Down
13 changes: 13 additions & 0 deletions faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,18 @@ be 00:00.
## How to use the apple chapters?
I honestly don't know as the only reference I could find is [NVEnc's documentation](https://github.com/rigaya/NVEnc/blob/master/NVEncC_Options.en.md#--chapter-string:~:text=apple%20format%20(should%20be%20in%20utf%2D8))

## Which EDL format is used?
I used the EDL format that is yielded by [shutter encoder](https://www.shutterencoder.com/en/). I hope the format is compatible with other software, but I haven't tested it.

## How to use the podlove simple chapters?
The podlove simple chapters are used in the podlove web player. The format is described in the [podlove documentation](https://podlove.org/simple-chapters/).

## How to use the apple hls chapters?
I have no idea. Also the format is only partially supported as it has more features than `chaptersjson` (which is the internal format used by chaptertool) can express.

## How to use the mp4chaps chapters?
No clue, hopefully you can figure it out.


## What does "chapter/timeline lock" do?
When enabled, clicking anywhere on the timeline will select the chapter below. When disabled you can click on the timeline without the chapter below being selected and scrolled into view.

0 comments on commit 880933c

Please sign in to comment.