zoom
Create animated close-ups and pans in screen recordings from keyframes or automatically from clicks and screen changes, with optional click highlights and dry-run planning.
Instructions
Smooth animated zoom-and-pan, Screen Studio style: zoom into where the action is and back out. Give keyframes (rectangles by time), or let it plan them from the clicks in the recording's input event log or from where the screen changes. highlightClicks rings each click. dryRun returns the plan so it can be adjusted. Returns the output path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Path to the source video. | |
| dryRun | No | Only return the planned keyframes (edit them and pass them back); write nothing. | |
| events | No | Event log to read clicks from (default: the input's sibling .events.jsonl). Its times and pixels must match the input, so use the original recording, not a trimmed or scaled copy. | |
| follow | No | Without keyframes: clicks zooms toward each click in the recording's input event log (start_recording events: true), panning between clicks close together; changes zooms toward where the screen changed. auto (default) uses clicks when the log has any, else changes. | |
| output | No | Optional output path. Defaults under SCREENCAST_HOME/edits. | |
| holdSec | No | Auto mode: stay zoomed this long after activity stops (default 2). | |
| maxZoom | No | Auto mode: the furthest it zooms in (default 2.5). | |
| keyframes | No | Views to animate between: each fills the frame with a source rectangle (x, y, width, height) by time t, or { t, full: true } to zoom out. Omit to plan them automatically (see follow). | |
| overwrite | No | Allow replacing an existing file at the output path (default false). | |
| transitionSec | No | How long each zoom/pan eases (default 0.6). | |
| highlightColor | No | Ring color: name, #RRGGBB, or name@alpha (default #FF4545). | |
| highlightClicks | No | Draw an expanding ring at each click from the event log (default false). Rings move with the zoom. |