← Cecil-IA Labs FFmpegCONTENT HISTORY

Update to Cecil-IA Labs FFmpeg

Snapshot Sep 30, 2026 · 23:17 UTC · version 2.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "ffmpeg-composition",
  "description": "Compose multiple media inputs with concatenation, xfade transitions, audio crossfades, normalization, and image slideshows. Use when two or more visual sources must become one timeline.",
  "included_files": [
    {
      "relative_path": "references/composition-reference.md",
      "size_in_bytes": 757
    },
    {
      "relative_path": "scripts/run.mjs",
      "size_in_bytes": 5259
    }
  ],
  "skill_md_contents": "---\nname: ffmpeg-composition\ndescription: Compose multiple media inputs with concatenation, xfade transitions, audio crossfades, normalization, and image slideshows. Use when two or more visual sources must become one timeline.\n---\n\n# FFmpeg Composition\n\nUse this skill for multi-source video/image timeline construction.\n\n## Activation scope\n\nUse for:\n\n- concatenating multiple clips;\n- adding transitions between clips;\n- composing two clips with a specific transition;\n- image slideshows in vertical-stack or sequence style;\n- sequence slideshows with transitions/include/exclude selection;\n- `zoomin` and explicit custom `zoomout` transitions;\n- workflows requiring normalization before `xfade`.\n\n## Do not use\n\nDo not use for single-file edits or repair. Do not choose non-standard filters such as `gltransition` unless environment capabilities confirm them and the toolkit path is insufficient.\n\n## Required inputs\n\nIdentify:\n\n- ordered inputs;\n- transition type and duration;\n- target dimensions/FPS;\n- audio policy;\n- slideshow duration/style/direction, transition, include/exclude patterns, and output format where relevant.\n\n## Preflight\n\nProbe every media input. Before transitions, normalize properties that FFmpeg requires to agree: scale/pad geometry, PTS, FPS, pixel format, and time base.\n\n## Toolkit surface selection\n\nUse the highest-level toolkit surface available to the host:\n\n1. Use the associated `scripts/run.mjs` entry point for supported composition actions.\n2. For explicit transition commands, slideshows, or other composition capabilities, use `cecilia-ffmpeg`.\n3. If the global binary is unavailable, use:\n   `npm exec --yes --package=@cecilialabs/ffmpeg -- cecilia-ffmpeg <command>`.\n4. Use native FFmpeg only for unsupported composition graphs or an explicit native-command request.\n\n## Associated scripts\n\nUse `scripts/run.mjs` with `input.action` `concat`, `transition`, or\n`slideshow`. Provide ordered `inputs` for concatenation, `left`/`right` for a\ntransition, or `directory` for a slideshow. The script preserves the typed\nnormalization and audio policy before execution.\n\n```bash\nprintf '%s\\n' '{\"context\":\"codex\",\"input\":{\"action\":\"concat\",\"inputs\":[\"one.mp4\",\"two.mp4\"],\"transition\":\"fade\",\"output\":\"joined.mp4\"}}' \\\n  | node skills/ffmpeg-composition/scripts/run.mjs\n```\n\n## Preferred toolkit commands\n\n```bash\ncecilia-ffmpeg compose concat <inputs...>\ncecilia-ffmpeg compose concat <inputs...> --transition fade\ncecilia-ffmpeg compose transition <left> <right>\ncecilia-ffmpeg compose slideshow <directory>\ncecilia-ffmpeg compose slideshow <directory> --style sequence --transition zoomin\n```\n\nFor supported operations, prefer the toolkit surface selected above over constructing arbitrary FFmpeg shell commands.\n\n## Native FFmpeg fallback\n\nUse native FFmpeg only for unsupported composition graphs or user-requested native syntax. Retain the same normalization discipline before `xfade`.\n\n## Output expectations\n\nReturn a single deterministic output with explicit warnings when audio cannot be preserved automatically.\n\n## Validation\n\nProbe the final file and verify:\n\n- expected total duration;\n- target dimensions/FPS/pixel format;\n- audio presence;\n- transition completion without filter reinitialization/timebase errors.\n\n## Error recovery\n\n- For timebase/FPS mismatch, normalize before transition instead of retrying the same graph.\n- For missing audio on one input, use an explicit audio policy rather than constructing an invalid `acrossfade`.\n- For unsupported transition filters, select a native `xfade` transition or inspect capabilities.\n\n## Safety and determinism\n\nPreserve input order. Do not use `eval` or shell-expanded filter graphs. Keep normalization explicit and repeatable.\n\n## References\n\nRead `references/composition-reference.md` for normalization order and transition guidance.\n"
}

SHA-256: 332b825c0e6694eb75a1af334695d68784a32f2a462f2031e22664da38c5875f