@shaztech/video-pipeline 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -57,6 +57,7 @@ The editor lets you:
57
57
  - Set a glob filter on Input Folder nodes (e.g. `*.mp4`; blank = all files)
58
58
  - Drag inputs to reorder them within a Stitcher node
59
59
  - Set per-image duration overrides (✎ pencil icon on image inputs)
60
+ - Burn a sequence number label (e.g. `scene 3/10`) into fixed image inputs via the **#** button on an image row, or into the whole output video via the **#** button in the *Output video sequence label* section — configure prefix, font, size, colour, background box, padding, and a total offset to adjust the denominator (the two scopes are mutually exclusive)
60
61
  - Delete nodes with the **×** button that appears on hover
61
62
  - Save with **⌘S** (macOS) / **Ctrl+S** (Windows/Linux) or the Save button
62
63
 
@@ -193,6 +194,46 @@ Connect an **Output Folder** node to override. Multiple Output Folder nodes can
193
194
  | `value` | `string` | File path (fixed items only) |
194
195
  | `nodeId` | `string` | Source node id (edge items only) |
195
196
  | `imageDuration` | `number` | Per-image duration override in seconds (fixed image items only) |
197
+ | `sequenceLabel` | `object` | Burn a sequence number into a fixed image input (see below) |
198
+
199
+ ### `sequenceLabel`
200
+
201
+ Burns text like `scene 3/10` into the bottom-right corner of a media file using FFmpeg `drawtext`. Requires a TTF/OTF font file. Works at two scopes:
202
+
203
+ - **Per image input** — set on an `inputOrder` item (via the **#** button on an image row). Only fires for that specific image in every stitcher run.
204
+ - **Whole output video** — set at the top level of `stitcherConfig` (via the **#** button in the *Output video sequence label* section). Burns the label into the final stitched MP4 as a post-stitch ffmpeg pass.
205
+
206
+ **These two scopes are mutually exclusive.** Enabling the whole-video label disables the per-image `#` buttons in the editor and suppresses per-image annotation at runtime even if stale per-image config is present. `video-pipeline validate` also reports an error if both are enabled simultaneously.
207
+
208
+ | Field | Type | Default | Description |
209
+ |-------|------|---------|-------------|
210
+ | `enabled` | `boolean` | — | Must be `true` to activate |
211
+ | `prefix` | `string` | — | Optional text before the number, e.g. `"scene"` → `scene 3/10` |
212
+ | `fontFile` | `string` | — | Path to a `.ttf`/`.otf`/`.ttc` font file (required) |
213
+ | `fontSize` | `number` | `48` | Font size in pixels |
214
+ | `fontColor` | `string` | `"white"` | FFmpeg colour string, e.g. `"white"`, `"yellow"` |
215
+ | `box` | `boolean` | `false` | Draw a semi-transparent background box behind the text |
216
+ | `boxColor` | `string` | `"black@0.5"` | FFmpeg colour string for the box (only when `box` is `true`) |
217
+ | `padding` | `number` | `20` | Distance from the right and bottom edges in pixels |
218
+ | `totalOffset` | `number` | `0` | Integer added to the total count in the denominator. Use `-1` to make the last segment overflow intentionally (e.g. 9 runs → `1/8` … `9/8`). |
219
+
220
+ **Example** — thumbnail with `scene N/8` label (9 segments, last is discarded):
221
+
222
+ ```json
223
+ {
224
+ "type": "fixed",
225
+ "value": "/path/to/thumbnail.png",
226
+ "imageDuration": 2,
227
+ "sequenceLabel": {
228
+ "enabled": true,
229
+ "prefix": "scene",
230
+ "fontFile": "/path/to/font.ttf",
231
+ "fontSize": 80,
232
+ "box": true,
233
+ "totalOffset": -1
234
+ }
235
+ }
236
+ ```
196
237
 
197
238
  ### `input-folder` config
198
239