← Files Cecil-IA Labs FFmpegARCHIVED FILE
dist/cli/command-spec.js
6.32 KB · Sep 30, 2026 · 23:17 UTC
/**
* Milestone 0 command grammar represented as data. The recursive registration
* layer means adding a future leaf does not require changes to CLI plumbing.
*/
export const COMMAND_TREE = [
{
syntax: "pipeline [tokens...]",
description: "Validate, print, or run a declarative file or inline media pipeline. Use pipeline <file> <validate|print|run>.",
implementationMilestone: 21,
},
{
syntax: "doctor",
description: "Inspect the FFmpeg/FFprobe runtime and media capabilities.",
implementationMilestone: 3,
},
{
syntax: "probe <input>",
description: "Inspect media metadata and streams using FFprobe.",
implementationMilestone: 3,
},
{
syntax: "environment",
description: "Inspect or configure the FFmpeg runtime environment.",
implementationMilestone: 3,
children: [
{
syntax: "capabilities",
description: "List available encoders, decoders, filters, and acceleration backends.",
implementationMilestone: 3,
},
{
syntax: "version",
description: "Show resolved FFmpeg and FFprobe versions.",
implementationMilestone: 3,
},
{
syntax: "check",
description: "Check execution context, toolkit installation, FFmpeg, FFprobe, and capabilities.",
implementationMilestone: 20,
},
{
syntax: "install [scope]",
description: "Plan or explicitly install the toolkit through npm.",
implementationMilestone: 20,
},
],
},
{
syntax: "video",
description: "Perform typed video editing operations.",
implementationMilestone: 4,
children: [
{ syntax: "trim-start <input>", description: "Remove media from the start.", implementationMilestone: 4 },
{ syntax: "trim-end <input>", description: "Remove media from the end.", implementationMilestone: 4 },
{ syntax: "trim <input>", description: "Extract a temporal range.", implementationMilestone: 4 },
{ syntax: "speed <input>", description: "Change video playback speed.", implementationMilestone: 4 },
{ syntax: "from-image <input>", description: "Create a video clip from a still image.", implementationMilestone: 4 },
{ syntax: "upscale <input>", description: "Resize/upscale video with configurable fit and restoration profile.", implementationMilestone: 13 },
{ syntax: "restore <input>", description: "Compatibility alias for video upscale.", implementationMilestone: 4 },
{ syntax: "attach-audio <video> <audio>", description: "Attach or replace audio on video.", implementationMilestone: 13 },
{ syntax: "add-silence <video>", description: "Add a silent audio track to video.", implementationMilestone: 13 },
],
},
{
syntax: "image",
description: "Convert still/animated images or extract frames from video.",
implementationMilestone: 13,
children: [
{ syntax: "convert <input>", description: "Convert one image to another image format.", implementationMilestone: 13 },
{ syntax: "extract <input>", description: "Extract a still image from a video timestamp.", implementationMilestone: 13 },
],
},
{
syntax: "audio",
description: "Perform typed audio and telephony operations.",
implementationMilestone: 5,
children: [
{ syntax: "attach <video> <audio>", description: "Attach or replace audio on video.", implementationMilestone: 5 },
{ syntax: "silence", description: "Generate silence audio.", implementationMilestone: 5 },
{ syntax: "add-silence <video>", description: "Add a silence track to video.", implementationMilestone: 5 },
{ syntax: "detect-silence <input>", description: "Detect silence intervals.", implementationMilestone: 5 },
{ syntax: "remove-silence <input>", description: "Remove configured silence intervals.", implementationMilestone: 5 },
{ syntax: "telephony <input>", description: "Transcode audio for telephony codecs and profiles.", implementationMilestone: 5 },
],
},
{
syntax: "convert",
description: "Convert individual media files or batches.",
implementationMilestone: 6,
children: [
{ syntax: "file <input>", description: "Convert one media file.", implementationMilestone: 6 },
{ syntax: "batch <directory>", description: "Convert a selected batch of media files.", implementationMilestone: 6 },
],
},
{
syntax: "compose",
description: "Compose multiple media sources and transitions.",
implementationMilestone: 7,
children: [
{ syntax: "concat <inputs...>", description: "Concatenate multiple media inputs.", implementationMilestone: 7 },
{ syntax: "transition <left> <right>", description: "Compose two inputs with a transition.", implementationMilestone: 7 },
{ syntax: "slideshow <directory>", description: "Compose a slideshow from image assets.", implementationMilestone: 7 },
],
},
{
syntax: "diagnose <input>",
description: "Diagnose media compatibility, timestamps, streams, and filter failures.",
implementationMilestone: 8,
},
{
syntax: "repair",
description: "Repair or normalize media structures.",
implementationMilestone: 8,
children: [
{ syntax: "timestamps <input>", description: "Repair timestamp and frame-timing problems.", implementationMilestone: 8 },
{ syntax: "normalize <input>", description: "Normalize media properties for downstream processing.", implementationMilestone: 8 },
],
},
{
syntax: "stream",
description: "Capture or stream media to a configured transport.",
implementationMilestone: 9,
children: [
{ syntax: "camera", description: "Capture and stream a camera device.", implementationMilestone: 9 },
{ syntax: "file <input>", description: "Stream a media file.", implementationMilestone: 9 },
],
},
];
//# sourceMappingURL=command-spec.js.mapSHA-256: c09b96ec6613db637dda1ab8d5d1441a9e66040788c108ed87e16243e0e438ae