Added
-
Agents can look at the footage.
fablecut_frame(MCP) andGET /api/frame
return a source frame, a contact sheet of evenly spaced frames, or the
composed timeline frame at a time, as a JPEG with a text line naming the
source, timestamps and clips on screen.text:truereturns statistics
instead (luma levels on 0–1, dominant colours, texture, saturation and
per-cell motion) for agents without vision. Reading a local file bypath=
requires theX-FableCut-Clientheader. -
Media management in the Project bin. Each file's frame rate, codecs,
audio channels, sample rate, bitrate and size are read with ffprobe and
shown in the bin (GET /api/media-info). Search by name, codec, resolution
or#tag; show favorites, used / unused files, a kind, a tag or a
collection; sort by any of them or by how often a file is used; a list view
with metadata columns. Files can be starred, tagged and grouped into
collections. Find timeline instances lists every place a file is used
(comps included) and jumps there; Reveal in project goes from a clip to
its file. Agents: patch opsupdateMedia,setCollection,
removeCollection; the compact view shows metadata, tags and usage. -
Offline media, relink and replace. A missing file is marked offline in
the bin and on the timeline, and its clips show a "Media offline" slate in
the monitor and the export. Relink… finds moved files in the project
folders by name and size (or matches a chosen folder by name) and keeps
every clip's In point; Replace file… puts a new file behind a media
entry, trimming clips to fit. Agents:relinkMediaandreplaceMedia
patch ops,POST /api/relink/candidates; offline files show in
fablecut_statusand the compact view. -
Proxies. Create a light H.264 copy (540p or 720p, frame-accurate,
short GOP) of heavy footage from the bin, made by ffmpeg in the
background with progress in the bin. With the monitor's Proxy button on
(the default), clips and the Source monitor play the proxy while you edit;
export, scopes and frame grabs always switch back to the originals. Proxies
are a cache inanalysis/proxies/, tied to the source file's version.
Agents:fablecut_proxy(make, check, delete);/api/proxyendpoints and
SSE eventproxy; the compact view showsproxy:540p. -
Delivery presets in the Export dialog. YouTube, YouTube Shorts,
Instagram Reels, TikTok, X, LinkedIn, Master, Broadcast (ProRes 422 HQ, PCM
24-bit), Web, Archive (lossless FFV1) and Custom, with every setting as a
control: resolution and reframing (crop, fit or stretch to another shape),
frame rate, codec (H.264, HEVC, AV1, VP9, ProRes, DNxHR, XDCAM HD422, FFV1),
encoder (NVENC, Quick Sync and AMF when they work on the machine), CRF / VBR /
CBR, max rate, keyframe interval, encoder speed, pixel format, color,
container, audio codec / bitrate / rate / channels, a file-name template and
metadata. Presets can be saved for every project (library/delivery/). The
dialog warns about upscaling, crops, platform length / size / frame-rate
limits and estimates the file size. 4:2:2, 4:4:4, 10-bit and lossless
outputs get raw RGBA frames. Agents:fablecut_exporttakespresetand
delivery;setProject {delivery}pins a project default;
fablecut_encode_profileslists the presets and the usable encoders.
Encoding profiles still work and sit at the bottom of the list. -
Batch export and an export queue. A project keeps a list of outputs
(project.outputs; "+ Typical set" adds master, YouTube 1080p, a 9:16 reel,
a square and a 720p preview), and Export checked makes them all with one
render per frame rate and range (up to 8 outputs each): each frame is drawn once and
every output's ffmpeg encodes it, so four 1080p files take about as long as one. The queue runs outputs back to
back with progress, stop, retry and open; one failed output does not stop
the rest. An export frame of another shape no longer squeezes an output: a
16:9 file of a project framed for 9:16 reframes the whole canvas. Agents:
fablecut_export {outputs:true | [...]},setProject {outputs}; REST
/api/export/begin {deliveries:[...]}. -
Loudness normalization and delivery checks. A delivery can normalize the
mix to a loudness target (−14 streaming, −16 podcast, −23 EBU R128, −24
ATSC A/85) with a true-peak ceiling, using ffmpeg's two-passloudnorm;
Broadcast does −23 LUFS / −1 dBTP by default. Every exported file is read
back with ffprobe and measured, and checked against what was asked: size,
frame rate, frame count, codec, color, audio, length, loudness, true peak and
the platform's file-size limit. The report shows in the export queue, after a
single export, and in thefablecut_exportreply.
Changed
/media/serves files in subfolders ofmedia/too.- Chroma key, temperature, tint and RGB split run on the GPU (WebGL2), in
preview and export: a 720p keyed frame went from 113 ms to 3.6 ms (RTX 4090)
and 123 ms to 12.5 ms (Intel UHD). Output matches the CPU loop within 1–2
levels (a few chroma-key edge pixels up to ~11). Without WebGL2, or on a
software rasterizer, the CPU loop still runs. - The editor redraws once per project frame, not on every display refresh
(240×/s on a 240 Hz panel). While paused it drops to 4 fps after 1.5 s idle. - An idle editor sleeps: the loop slows to a 4 fps timer and the audio
graph suspends 3 s after the last sound. Idle tab: 83% → 2.2% of a core.