Captions & subtitles
Import subtitles, generate them from the composition’s own audio, edit them
like anything else on the timeline, and write them back out as .srt or
.vtt.
All five commands live under Composition ▸ … and in the command palette:
| Command | What it does |
|---|---|
| Import Captions… | Reads an .srt or .vtt file into caption layers. |
| Generate Captions from Audio | Transcribes the composition’s audio and builds the layers. |
| Export Captions (.srt) | Writes the caption layers back out as SubRip. |
| Export Captions (.vtt) | The same, as WebVTT. |
| Remove All Captions | Clears them — one undo step. |
The one idea: a caption is a text layer
There is no separate caption track, caption object or caption editor to learn. Each caption is an ordinary text layer whose clip bar is its cue window. Everything follows from that:
- Re-time a caption by dragging its bar, like any layer. Export reads the bars, so the file always agrees with the picture.
- Restyle one caption by styling the layer. Restyle all of them by selecting them all — same as styling any multi-selection.
- Animate them freely: per-glyph animators, layer styles, 3D, motion blur, the graph editor — captions have all of it, because text layers have all of it.
New captions size themselves from the composition, not in fixed pixels: the text is 5% of comp height with the baseline a tenth of the frame off the bottom — clear of the UI every social platform draws down there. The same captions read correctly on a 1080×1920 vertical cut and a 4K master. Long lines wrap at broadcast practice (~42 characters, max two lines), and those breaks survive export identically on every machine.
Import and Generate both replace any captions already in the composition. That is deliberate — importing twice should not double every subtitle.
Messy files are handled
Real subtitle files are messy, and the importer expects that: CRLF endings,
BOMs, .vtt files written with SRT commas (and vice versa), timestamps with
no hour field, cue settings, NOTE/STYLE blocks, missing blank lines.
Overlapping cues are trimmed against each other so two captions never render
on top of each other.
From the command line
The same engine runs headless: premation captions project.motion --out subs.srt transcribes without opening the editor. See
the CLI.