Skip to content
Novus Examples
txt339 B

Chapters — FFMETADATA1 Chapter File

FFmpeg's own metadata format, and the one used to build the two embedded-chapter files in this group. START and END are integers in the declared TIMEBASE, which is the detail that trips people up: change TIMEBASE and every timestamp silently means something else. This is the exact file the MKV and MP4 chapter fixtures here were built from.

Preview — first 29 linestxt
;FFMETADATA1
title=Novus Examples — Multi-Track Base Clip
artist=novus-examples
date=2026

[CHAPTER]
TIMEBASE=1/1000
START=0
END=2000
title=Cold Open

[CHAPTER]
TIMEBASE=1/1000
START=2000
END=4000
title=Titles

[CHAPTER]
TIMEBASE=1/1000
START=4000
END=6000
title=Main Segment

[CHAPTER]
TIMEBASE=1/1000
START=6000
END=8000
title=Credits

Specifications

Format
FFMETADATA1
Chapters
4
Timebase
1/1000
Usage
ffmpeg -i in.mp4 -i chapters.txt -map_metadata 1 -map_chapters 1 -c copy out.mkv
Chapter Names
Cold Open / Titles / Main Segment / Credits

What is a .txt file?

TXT is a plain-text file containing unformatted character data with no styling or structure beyond line breaks. Its interpretation depends on character encoding, most commonly UTF-8, and on line-ending convention. It is the most universal and portable text container.

How to use this file

Use an example TXT to test encoding detection, line-ending (LF versus CRLF) handling, and any tool that reads or streams raw text input.

How to use this file for testing

“Chapters — FFMETADATA1 Chapter File” is a deterministic Novus Examples fixture for Media metadata, Video QA, Conversion testing. Video files with embedded chapters, full container tags, attached cover art and a SMPTE start timecode — each paired with a deliberately stripped twin, so you can tell a metadata reader that found nothing from one that was never given anything.

Documented properties for this file: FFMETADATA1. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Media fixtures are short and synthetic by design. Prefer waveform or transcript ground truth in the same group when measuring ASR, trim, upscale, or sync tools; do not assume broadcast-quality masters.

Generated by generation/video_accessibility.py. Free for any use, no attribution required — license.