Skip to Content
Working with videoCaptions & subtitles

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:

CommandWhat it does
Import Captions…Reads an .srt or .vtt file into caption layers.
Generate Captions from AudioTranscribes 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 CaptionsClears 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.

Last updated on