@jtdigital/renderbox-sdk 0.4.1 → 0.5.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.
Files changed (48) hide show
  1. package/README.md +28 -0
  2. package/dist/bridge.d.ts +139 -0
  3. package/dist/bridge.d.ts.map +1 -0
  4. package/dist/bridge.js +338 -0
  5. package/dist/bridge.js.map +1 -0
  6. package/dist/graph.d.ts +11 -5
  7. package/dist/graph.d.ts.map +1 -1
  8. package/dist/graph.js +7 -7
  9. package/dist/graph.js.map +1 -1
  10. package/dist/index.d.ts +4 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/pipelines.d.ts +516 -0
  15. package/dist/pipelines.d.ts.map +1 -0
  16. package/dist/pipelines.js +16 -0
  17. package/dist/pipelines.js.map +1 -0
  18. package/dist/presets/audio.d.ts +43 -0
  19. package/dist/presets/audio.d.ts.map +1 -0
  20. package/dist/presets/audio.js +148 -0
  21. package/dist/presets/audio.js.map +1 -0
  22. package/dist/presets/index.d.ts +5 -0
  23. package/dist/presets/index.d.ts.map +1 -0
  24. package/dist/presets/index.js +5 -0
  25. package/dist/presets/index.js.map +1 -0
  26. package/dist/presets/position.d.ts +39 -0
  27. package/dist/presets/position.d.ts.map +1 -0
  28. package/dist/presets/position.js +40 -0
  29. package/dist/presets/position.js.map +1 -0
  30. package/dist/presets/text.d.ts +90 -0
  31. package/dist/presets/text.d.ts.map +1 -0
  32. package/dist/presets/text.js +132 -0
  33. package/dist/presets/text.js.map +1 -0
  34. package/dist/presets/video.d.ts +46 -0
  35. package/dist/presets/video.d.ts.map +1 -0
  36. package/dist/presets/video.js +108 -0
  37. package/dist/presets/video.js.map +1 -0
  38. package/dist/recipes/makeSlideshow.d.ts +2 -1
  39. package/dist/recipes/makeSlideshow.d.ts.map +1 -1
  40. package/dist/recipes/makeSlideshow.js +3 -71
  41. package/dist/recipes/makeSlideshow.js.map +1 -1
  42. package/dist/streams.d.ts +110 -65
  43. package/dist/streams.d.ts.map +1 -1
  44. package/dist/streams.js +283 -201
  45. package/dist/streams.js.map +1 -1
  46. package/dist/types.d.ts +12 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +20 -5
@@ -0,0 +1,108 @@
1
+ // ---------------------------------------------------------------------------
2
+ // xfadeChain — automatic offset math for crossfade sequences
3
+ // ---------------------------------------------------------------------------
4
+ /**
5
+ * Chain clips with `xfade` transitions, computing each cumulative offset from
6
+ * the clip durations: every transition overlaps `crossfade` seconds of the
7
+ * outgoing and incoming clips. Requires at least 2 clips.
8
+ */
9
+ export function xfadeChain(clips, transition, crossfade) {
10
+ if (clips.length < 2) {
11
+ throw new Error(`xfadeChain: requires at least 2 clips, got ${clips.length}`);
12
+ }
13
+ let acc = clips[0].stream;
14
+ let cumulativeOffset = clips[0].duration - crossfade;
15
+ for (const clip of clips.slice(1)) {
16
+ acc = acc.xfade(clip.stream, { transition, duration: crossfade, offset: cumulativeOffset });
17
+ cumulativeOffset += clip.duration - crossfade;
18
+ }
19
+ return acc;
20
+ }
21
+ // ---------------------------------------------------------------------------
22
+ // concatChain — simple concat wrapper
23
+ // ---------------------------------------------------------------------------
24
+ /** Concatenate clips back-to-back. Requires at least 2 clips. */
25
+ export function concatChain(clips) {
26
+ if (clips.length < 2) {
27
+ throw new Error(`concatChain: requires at least 2 clips, got ${clips.length}`);
28
+ }
29
+ return clips[0].concat(clips.slice(1));
30
+ }
31
+ // ---------------------------------------------------------------------------
32
+ // fadeBookend — fade-in at start, fade-out before end
33
+ // ---------------------------------------------------------------------------
34
+ export function fadeBookend(video, fadeInDur, fadeOutStart, fadeOutDur) {
35
+ return video
36
+ .fade({ type: 'in', st: 0, d: fadeInDur })
37
+ .fade({ type: 'out', st: fadeOutStart, d: fadeOutDur });
38
+ }
39
+ const CENTER_X = 'iw/2-(iw/zoom/2)';
40
+ const CENTER_Y = 'ih/2-(ih/zoom/2)';
41
+ const EDGE_X = 'iw-(iw/zoom)';
42
+ const EDGE_Y = 'ih-(ih/zoom)';
43
+ const DRIFT_X = 'iw/6';
44
+ const DRIFT_Y = 'ih/6';
45
+ function lerp(frames, from, to) {
46
+ return `${from}+(${to}-(${from}))*on/${frames}`;
47
+ }
48
+ function easeInOut(frames, from, to) {
49
+ return `${from}+(${to}-(${from}))*(3*pow(on/${frames},2)-2*pow(on/${frames},3))`;
50
+ }
51
+ /** The zoompan `z`/`x`/`y` expressions for a preset over `frames` frames. */
52
+ export function kenBurnsExprs(preset, frames) {
53
+ switch (preset) {
54
+ case 'gentleZoomIn': return { z: lerp(frames, '1', '1.15'), x: CENTER_X, y: CENTER_Y };
55
+ case 'gentleZoomOut': return { z: lerp(frames, '1.15', '1'), x: CENTER_X, y: CENTER_Y };
56
+ case 'gentlePan': return { z: '1.05', x: easeInOut(frames, '0', CENTER_X), y: CENTER_Y };
57
+ case 'zoomIn': return { z: easeInOut(frames, '1', '1.5'), x: CENTER_X, y: CENTER_Y };
58
+ case 'zoomOut': return { z: easeInOut(frames, '1.5', '1'), x: CENTER_X, y: CENTER_Y };
59
+ case 'panRight': return { z: '1.1', x: easeInOut(frames, '0', EDGE_X), y: CENTER_Y };
60
+ case 'panLeft': return { z: '1.1', x: easeInOut(frames, EDGE_X, '0'), y: CENTER_Y };
61
+ case 'punchIn': return { z: easeInOut(frames, '1', '2'), x: CENTER_X, y: CENTER_Y };
62
+ case 'pullBack': return { z: easeInOut(frames, '2', '1'), x: CENTER_X, y: CENTER_Y };
63
+ case 'spiral': return {
64
+ z: easeInOut(frames, '1', '1.4'),
65
+ x: `${CENTER_X}+${DRIFT_X}*sin(2*PI*on/${frames})`,
66
+ y: `${CENTER_Y}+${DRIFT_Y}*cos(2*PI*on/${frames})`,
67
+ };
68
+ case 'diagonal': return {
69
+ z: easeInOut(frames, '1', '1.3'),
70
+ x: easeInOut(frames, '0', EDGE_X),
71
+ y: easeInOut(frames, '0', EDGE_Y),
72
+ };
73
+ case 'parallax': return {
74
+ z: '1.2',
75
+ x: easeInOut(frames, DRIFT_X, `${EDGE_X}-${DRIFT_X}`),
76
+ y: CENTER_Y,
77
+ };
78
+ }
79
+ }
80
+ /**
81
+ * Apply a Ken Burns move to a clip, emitting `w`×`h` at `fps`.
82
+ *
83
+ * Modest 2x working size for zoom headroom. NOT 4x: that produced ~8K
84
+ * intermediate frames which, with the deflicker/tmix/gblur smoothing stack,
85
+ * OOM'd render workers (ffmpeg exit 254). Integer (trunc'd) pan positions keep
86
+ * the motion jitter-free without any of that smoothing — the lean approach
87
+ * proven in production.
88
+ */
89
+ export function kenBurns(input, preset, duration, w, h, fps) {
90
+ const frames = Math.round(duration * fps);
91
+ const exprs = kenBurnsExprs(preset, frames);
92
+ const scaledW = w * 2;
93
+ const scaledH = h * 2;
94
+ return input
95
+ .scale({ w: scaledW, h: scaledH, force_original_aspect_ratio: 'decrease', flags: 'lanczos' })
96
+ .pad({ w: scaledW, h: scaledH, x: '(ow-iw)/2', y: '(oh-ih)/2', color: 'black' })
97
+ .setsar({ sar: '1' })
98
+ .zoompan({ z: exprs.z, x: `trunc(${exprs.x})`, y: `trunc(${exprs.y})`, d: frames, fps, s: `${w}x${h}` })
99
+ .format({ pix_fmts: 'yuv420p' });
100
+ }
101
+ /** Prepare slides with Ken Burns moves, ready to feed {@link xfadeChain}. */
102
+ export function kenBurnsChain(slides, w, h, fps) {
103
+ return slides.map((s) => ({
104
+ stream: kenBurns(s.stream, s.preset, s.duration, w, h, fps),
105
+ duration: s.duration,
106
+ }));
107
+ }
108
+ //# sourceMappingURL=video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/presets/video.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type Graph, type SinkAvOpts } from '../graph.js';
2
- export type KenBurnsPreset = 'gentleZoomIn' | 'gentleZoomOut' | 'gentlePan' | 'zoomIn' | 'zoomOut' | 'panRight' | 'panLeft' | 'punchIn' | 'pullBack' | 'spiral' | 'diagonal' | 'parallax';
2
+ import { type KenBurnsPreset } from '../presets/video.js';
3
+ export type { KenBurnsPreset } from '../presets/video.js';
3
4
  export interface SlideConfig {
4
5
  path: string;
5
6
  duration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"makeSlideshow.d.ts","sourceRoot":"","sources":["../../src/recipes/makeSlideshow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"makeSlideshow.d.ts","sourceRoot":"","sources":["../../src/recipes/makeSlideshow.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,6 @@
1
1
  import { graph } from '../graph.js';
2
- const CENTER_X = 'iw/2-(iw/zoom/2)';
3
- const CENTER_Y = 'ih/2-(ih/zoom/2)';
4
- const EDGE_X = 'iw-(iw/zoom)';
5
- const EDGE_Y = 'ih-(ih/zoom)';
6
- const DRIFT_X = 'iw/6';
7
- const DRIFT_Y = 'ih/6';
2
+ import { kenBurns, xfadeChain } from '../presets/video.js';
8
3
  const DEFAULT_DETECT_MODEL = 'yolov9-c';
9
- function lerp(frames, from, to) {
10
- return `${from}+(${to}-(${from}))*on/${frames}`;
11
- }
12
- function easeInOut(frames, from, to) {
13
- return `${from}+(${to}-(${from}))*(3*pow(on/${frames},2)-2*pow(on/${frames},3))`;
14
- }
15
- function presetExprs(preset, frames) {
16
- switch (preset) {
17
- case 'gentleZoomIn': return { z: lerp(frames, '1', '1.15'), x: CENTER_X, y: CENTER_Y };
18
- case 'gentleZoomOut': return { z: lerp(frames, '1.15', '1'), x: CENTER_X, y: CENTER_Y };
19
- case 'gentlePan': return { z: '1.05', x: easeInOut(frames, '0', CENTER_X), y: CENTER_Y };
20
- case 'zoomIn': return { z: easeInOut(frames, '1', '1.5'), x: CENTER_X, y: CENTER_Y };
21
- case 'zoomOut': return { z: easeInOut(frames, '1.5', '1'), x: CENTER_X, y: CENTER_Y };
22
- case 'panRight': return { z: '1.1', x: easeInOut(frames, '0', EDGE_X), y: CENTER_Y };
23
- case 'panLeft': return { z: '1.1', x: easeInOut(frames, EDGE_X, '0'), y: CENTER_Y };
24
- case 'punchIn': return { z: easeInOut(frames, '1', '2'), x: CENTER_X, y: CENTER_Y };
25
- case 'pullBack': return { z: easeInOut(frames, '2', '1'), x: CENTER_X, y: CENTER_Y };
26
- case 'spiral': return {
27
- z: easeInOut(frames, '1', '1.4'),
28
- x: `${CENTER_X}+${DRIFT_X}*sin(2*PI*on/${frames})`,
29
- y: `${CENTER_Y}+${DRIFT_Y}*cos(2*PI*on/${frames})`,
30
- };
31
- case 'diagonal': return {
32
- z: easeInOut(frames, '1', '1.3'),
33
- x: easeInOut(frames, '0', EDGE_X),
34
- y: easeInOut(frames, '0', EDGE_Y),
35
- };
36
- case 'parallax': return {
37
- z: '1.2',
38
- x: easeInOut(frames, DRIFT_X, `${EDGE_X}-${DRIFT_X}`),
39
- y: CENTER_Y,
40
- };
41
- }
42
- }
43
4
  function imageClip(g, path, duration, fpsRate) {
44
5
  const [v] = g.open(path);
45
6
  return v
@@ -48,23 +9,6 @@ function imageClip(g, path, duration, fpsRate) {
48
9
  .trim({ start: 0, end: duration })
49
10
  .setpts({ expr: 'PTS-STARTPTS' });
50
11
  }
51
- function applyKenBurns(input, preset, duration, w, h, fpsRate) {
52
- const frames = Math.round(duration * fpsRate);
53
- const exprs = presetExprs(preset, frames);
54
- // Modest 2x working size for zoom headroom. NOT 4x: that produced ~8K intermediate
55
- // frames which, with the deflicker/tmix/gblur smoothing stack, OOM'd render workers
56
- // (ffmpeg exit 254). Integer (trunc'd) pan positions keep the motion jitter-free
57
- // without any of that smoothing — the lean approach proven in production (slideshow
58
- // pipelines running hundreds of videos on this same fleet).
59
- const scaledW = w * 2;
60
- const scaledH = h * 2;
61
- return input
62
- .scale({ w: scaledW, h: scaledH, force_original_aspect_ratio: 'decrease', flags: 'lanczos' })
63
- .pad({ w: scaledW, h: scaledH, x: '(ow-iw)/2', y: '(oh-ih)/2', color: 'black' })
64
- .setsar({ sar: '1' })
65
- .zoompan({ z: exprs.z, x: `trunc(${exprs.x})`, y: `trunc(${exprs.y})`, d: frames, fps: fpsRate, s: `${w}x${h}` })
66
- .format({ pix_fmts: 'yuv420p' });
67
- }
68
12
  function applyLetterbox(input, w, h) {
69
13
  return input
70
14
  .scale({ w, h, force_original_aspect_ratio: 'decrease', flags: 'lanczos' })
@@ -102,18 +46,6 @@ function fitSlide(input, w, h, smart) {
102
46
  return applyCover(input, w, h);
103
47
  return applyLetterbox(input, w, h);
104
48
  }
105
- function buildXfadeChain(clips, durations, transition, transitionDur) {
106
- let result = clips[0];
107
- let elapsedContent = durations[0];
108
- let elapsedTransitions = 0;
109
- for (let i = 1; i < clips.length; i++) {
110
- const offset = elapsedContent - elapsedTransitions - transitionDur;
111
- result = result.xfade(clips[i], { transition, duration: transitionDur, offset });
112
- elapsedContent += durations[i];
113
- elapsedTransitions += transitionDur;
114
- }
115
- return result;
116
- }
117
49
  function watermarkXY(position, margin) {
118
50
  switch (position) {
119
51
  case 'topLeft': return { x: `${margin}`, y: `${margin}` };
@@ -207,7 +139,7 @@ export function makeSlideshow(outputPath, opts) {
207
139
  const clips = opts.slides.map((slide) => {
208
140
  const clip = imageClip(g, slide.path, slide.duration, fpsRate);
209
141
  return slide.kenBurns
210
- ? applyKenBurns(clip, slide.kenBurns, slide.duration, w, h, fpsRate)
142
+ ? kenBurns(clip, slide.kenBurns, slide.duration, w, h, fpsRate)
211
143
  : fitSlide(clip, w, h, opts.smartCrop);
212
144
  });
213
145
  const durations = opts.slides.map((s) => s.duration);
@@ -218,7 +150,7 @@ export function makeSlideshow(outputPath, opts) {
218
150
  video = clips[0];
219
151
  }
220
152
  else if (transitionDur > 0) {
221
- video = buildXfadeChain(clips, durations, transitionType, transitionDur);
153
+ video = xfadeChain(clips.map((stream, i) => ({ stream, duration: durations[i] })), transitionType, transitionDur);
222
154
  }
223
155
  else {
224
156
  video = clips[0].concat(clips.slice(1));
@@ -1 +1 @@
1
- {"version":3,"file":"makeSlideshow.js","sourceRoot":"","sources":["../../src/recipes/makeSlideshow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"makeSlideshow.js","sourceRoot":"","sources":["../../src/recipes/makeSlideshow.ts"],"names":[],"mappings":"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"}