github ronak-create/FableCut v1.15.0

one hour ago

Added

  • Agents can look at the footage. fablecut_frame (MCP) and GET /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:true returns statistics
    instead (luma levels on 0–1, dominant colours, texture, saturation and
    per-cell motion) for agents without vision. Reading a local file by path=
    requires the X-FableCut-Client header.

  • 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 ops updateMedia, 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: relinkMedia and replaceMedia
    patch ops, POST /api/relink/candidates; offline files show in
    fablecut_status and 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 in analysis/proxies/, tied to the source file's version.
    Agents: fablecut_proxy (make, check, delete); /api/proxy endpoints and
    SSE event proxy; the compact view shows proxy: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_export takes preset and
    delivery; setProject {delivery} pins a project default;
    fablecut_encode_profiles lists 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-pass loudnorm;
    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 the fablecut_export reply.

Changed

  • /media/ serves files in subfolders of media/ 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.

Don't miss a new FableCut release

NewReleases is sending notifications on new releases.