export
Convert a timeline into an NLE project or render it to media. The writer is chosen automatically based on project sources, and presets control quality and loudness.
Instructions
Export the timeline as an NLE project, or render it.
The default writes an MLT project Kdenlive opens; export_format=null
renders media. The writer is chosen from the project, never from an
argument: a single-source timeline goes through auto-editor, and a
multi-source one — a cue table, a second clip, a canvas, a bed, a tail —
is written as MLT by proofcut and rendered by melt, because auto-editor
renders a second source at 720x576 while exiting 0. The reply names the
writer, and a melt render reports resolution and frame count measured off
the finished file.
preset bundles quality for a render; tiktok-reels checks 9:16 and
never sets the shape — use canvas first. loudness masters to a LUFS
target and refuses, leaving the render as it was, if it misses by more
than 1 LU.
Captions are not burned by this — add_captions is its own step. Then
check the file against the timeline with check_frames and verify;
a render that exists is not a render that is right.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | The NLE timeline's frame rate, defaulting to the picture's own (30 for an audio-only project). It sets the render's rate too wherever proofcut owns the profile, and is ignored when auto-editor renders a single-source timeline. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| output | Yes | Where to write the project file or the render. A file argument, not a project selector: it writes where you say. | |
| preset | No | A named quality bundle — `youtube`, `web`, `tiktok-reels`, or `custom` (which needs `resolution`) — meaningful only with `export_format=null`, since an NLE project file has no bitrate. `tiktok-reels` also **checks** that the project renders 9:16 and refuses otherwise; it never sets the shape. Use `canvas` for that. | |
| loudness | No | Master the render to this many LUFS integrated: one gain and a true-peak limiter, measured before and after, and refused — leaving the render as it was — if the result misses by more than 1 LU. Render only. | |
| true_peak | No | The dBTP ceiling the loudness pass limits under. -1.0 by default. | |
| resolution | No | `[width, height]`. It **letterboxes** the existing frame on the single-source render path rather than cropping or reframing it, and is refused outright on a melt (multi-source) project. | |
| export_format | No | `kdenlive` (the default) writes an MLT project Kdenlive opens and melt renders. Pass null to render media instead. Other auto-editor targets — shotcut, premiere, resolve, final-cut-pro — pass straight through. | kdenlive |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||