OpenBBQ

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.

ModeCommandLines in the file
Source onlyopenbbq exportOriginal text
Target onlyopenbbq export --to zhTranslated text
Bilingualopenbbq export --to zh --mode bilingualTranslation 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 bilingual

ASS 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 fansub

A preset is a ready-made layout — font, size, and placement for the two lines:

PresetWhat it's for
defaultStandard 16:9 horizontal video
fansubA more prominent translated line
fansub-compactA smaller, raised bilingual stack — used only when you explicitly ask for it, never auto-selected
mobile9: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/demo

For 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/demo

For an intentional draft, --allow-missing fills the blank lines with source text:

openbbq export --to zh --mode bilingual --allow-missing --workspace workspaces/demo

Open 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/demo

Relative 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/demo

Or name the files yourself:

openbbq burn \
  --workspace workspaces/demo \
  --subtitle out/review.ass \
  --output out/final.mp4

The 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 ass first.
  • An FFmpeg build with the ass and subtitles filters. If that build is not first on your PATH, point at it directly:
openbbq burn --workspace workspaces/demo --ffmpeg /path/to/ffmpeg

Burning takes minutes, not seconds. Progress is written to the workspace manifest; watch it from another terminal:

openbbq --json status --workspace workspaces/demo

If 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 zh

The final gate before publishing. Quality gates gives the full picture of what it re-verifies.

On this page