proxy_transcode
Transcodes unplayable footage into a downscaled H.264/AAC/MP4 proxy in the project cache so the preview can play it; skips clips with a current proxy or that already play.
Instructions
Make footage the preview cannot decode playable in the window.
The other half of what the viewer already reports: an unplayable clip names its reason (hev1, 10-bit, an unopenable container, an undecodable audio track) and shows black. This transcodes a downscaled h264/aac/mp4 stand-in into the project's cache so it plays. One ffmpeg pass; a long clip is minutes.
The result is a preview artefact and cannot reach a render: nothing
records it in the manifest, so media_path() — what export, verify and
check_frames all resolve through — has no way to see it. That containment
is structural, not a convention to be careful about.
Skips the work when a current proxy already exists (keyed by the source's
size and mtime), so calling it on every unplayable clip in a project is
cheap after the first pass. Refuses a clip that already plays, and refuses
a file with no decodable streams — that is a broken file, not a codec
problem, and it is the one refusal a transcode cannot close. force
rebuilds a current proxy but does not override either refusal.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| force | No | Rebuild a proxy that is already current. It touches nothing authored: a proxy is a preview artefact the manifest never records, so no render can reach one. It overrides neither refusal. | |
| clip_id | Yes | The clip the preview cannot decode. A clip that already plays is refused, and so is one with no decodable streams — that is a broken file, not a codec problem. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||