SCHEMAXIS · Declared work. Results you can check.Documentation ↗ · Contact
schemaxis/Agent’s Hands

Documentation / diagram-video.md
Core 11629ae · View or edit Markdown on GitHub ↗

From technical diagrams to an editable video

The editable workflow joins three bounded adaptors through verified artifact references:

flowchart LR
    A[Inkscape: baseline diagram] --> C[FFmpeg: six ordered frames]
    B[Inkscape: changed diagram] --> C
    C --> D[Shotcut: five-frame edit and project bundle]

The two diagrams use an 80 × 40 mm page at 127 dpi, producing 400 × 200 pixels. Their first box changes colour. FFmpeg alternates these PNGs into six lossless frames at 12 fps and requires the exact dimensions and frame count, half-second duration within the default 0.002-second tolerance, and zero decoded RGB error. Shotcut selects source frames [1,2] followed by [0,1,2], producing five frames at 12 fps. The first two diagram jobs may run concurrently; their native Inkscape sessions have independent application IDs and profiles.

Configure the installed applications through the ordinary private configuration:

PYTHONPATH=src python3 -m schemaxis configure inkscape /absolute/inkscape
PYTHONPATH=src python3 -m schemaxis configure ffmpeg /absolute/ffmpeg
PYTHONPATH=src python3 -m schemaxis configure shotcut /absolute/Shotcut.app/melt
PYTHONPATH=src python3 -m schemaxis run \
  examples/schemaxis/diagram-to-edited-video.json --output-directory new-diagram-video
PYTHONPATH=src python3 -m schemaxis verify new-diagram-video

Use Shotcut's portable melt wrapper with its matching ffmpeg and ffprobe beside it. The separate FFmpeg provider also needs a matching FFprobe sibling. Application locations remain outside the authored workflow. No source media or machine paths need to be substituted into this example: consumer inputs resolve from verified producer publications.

The final Shotcut run publishes video.mkv, project.mlt and project-bundle.zip, in that order. Extract the bundle to keep the editable MLT project together with its captured media. The independent native acceptance checks relocation and rendering from that extracted bundle. Qualification uses the MLT engine; it does not establish a Shotcut GUI editing roundtrip.

For the integration acceptance recipe, pass a private JSON configuration with version: 1 and locations entries for inkscape, ffmpeg and shotcut:

PYTHONPATH=src python3 tools/qualify_diagram_video.py \
  --config /absolute/private-config.json --output-directory evidence/diagram-video-check

The recipe verifies native results, exact selected frame ranges, four-job resume, rejection of a changed producer PNG, and failure propagation. Demanding seven frames from the six-frame encoding must fail with an unmet media requirement; the dependent edit must never launch. Source, document and recipe identities are retained in the qualification report.

This is a short technical-publication exercise. It does not qualify audio, transitions, resizing, creative editorial quality, colour management or general interchange with other video editors. See the Inkscape, FFmpeg and Shotcut guides for exact limits.