Export and burn
Export SRT or ASS subtitle files from the workspace, and burn styled subtitles into the video.
Exporting turns the checked workspace files into subtitle files you can hand to any player or video editor. Burning goes one step further and writes the subtitles into the picture itself. Both come after the text is right — Visual review is the usual stop before this one.
Export modes
openbbq export reads the subtitle lines (cues.json) and, for translated output, one translation worksheet.
| Mode | Command | Lines in the file |
|---|---|---|
| Source only | openbbq export | Original text |
| Target only | openbbq export --to zh | Translated text |
| Bilingual | openbbq export --to zh --mode bilingual | Translation above original |
Without --to, the default mode is source; with --to, the default is target.
SRT
SRT is the default format — the plain subtitle file nearly every player understands. It lands at out/<lang>.srt:
openbbq export --workspace workspaces/demo
openbbq export --workspace workspaces/demo --to zh --mode bilingualASS and presets
Use ASS when you want styled bilingual subtitles, or when you plan to burn:
openbbq export \
--workspace workspaces/demo \
--to zh \
--mode bilingual \
--format ass \
--ass-preset fansubA preset is a ready-made layout — font, size, and placement for the two lines:
| Preset | What it's for |
|---|---|
default | Standard 16:9 horizontal video |
fansub | A more prominent translated line |
fansub-compact | A smaller, raised bilingual stack — used only when you explicitly ask for it, never auto-selected |
mobile | 9:16 vertical canvas with a larger bottom safe area |
--ass-preset is valid only together with --format ass. The mobile preset changes rendering only; it does not shorten long lines. Content that exceeds the reading-speed or line-capacity checks must be revised or resegmented — for example through translate init overrides. See Translation workflow.
The review gate
When a matching review.zh.json or review.source.json exists, export requires every subtitle line in that scope to be reviewed and current. Reopen the editor to finish the remaining lines or refresh stale ones:
openbbq review --to zh --workspace workspaces/demoFor an intentional draft only, --allow-unreviewed lets the export through; it marks nothing as reviewed. Visual review explains the gate.
Incomplete translations
Target and bilingual export normally fail when any line's translation is blank. Check first:
openbbq translate check zh --workspace workspaces/demoFor an intentional draft, --allow-missing fills the blank lines with source text:
openbbq export --to zh --mode bilingual --allow-missing --workspace workspaces/demoOpen quality items
Export also stops for open quality items: missing lines, lines over their length budget, zero-budget lines, glossary term issues, and lines not yet audited. Each translated line carries a length budget — how many characters fit at a comfortable reading speed. A deliberate draft can pass --allow-quality-warnings to export anyway.
Custom output path
openbbq export --to zh --format ass --output out/review.ass --workspace workspaces/demoRelative paths resolve inside the workspace; absolute paths are fine too.
Burning subtitles into the video
openbbq burn uses the most recent ASS export:
openbbq burn --workspace workspaces/demoOr name the files yourself:
openbbq burn \
--workspace workspaces/demo \
--subtitle out/review.ass \
--output out/final.mp4The default output name derives from the subtitle file — out/zh.ass becomes out/zh-burned.mp4.
What you need:
- A video source. Burning is not available for audio workspaces.
- An ASS subtitle file — export with
--format assfirst. - An FFmpeg build with the
assandsubtitlesfilters. If that build is not first on your PATH, point at it directly:
openbbq burn --workspace workspaces/demo --ffmpeg /path/to/ffmpegBurning takes minutes, not seconds. Progress is written to the workspace manifest; watch it from another terminal:
openbbq --json status --workspace workspaces/demoIf burn rejects your setup or the filters are missing, see Troubleshooting.
What gets recorded
Export records content hashes — fingerprints — of the subtitle lines, the translation, the review state, and the ASS file. Burn checks them and refuses a workspace ASS that has changed or that it never tracked: re-export, or pass the file explicitly with --subtitle. --allow-stale is reserved for an intentional manual draft.
A successful burn records the final MP4 hash plus the exact source-video and ASS hashes — you can always tell which ingredients went into the cooked video.
Before you serve it
openbbq delivery check --to zhThe final gate before publishing. Quality gates gives the full picture of what it re-verifies.