@nodetool-ai/video-nodes 0.8.1

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 (152) hide show
  1. package/README.md +58 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +11 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/nodes/ffmpeg-helpers.d.ts +77 -0
  8. package/dist/nodes/ffmpeg-helpers.d.ts.map +1 -0
  9. package/dist/nodes/ffmpeg-helpers.js +220 -0
  10. package/dist/nodes/ffmpeg-helpers.js.map +1 -0
  11. package/dist/nodes/lib-video-download.d.ts +29 -0
  12. package/dist/nodes/lib-video-download.d.ts.map +1 -0
  13. package/dist/nodes/lib-video-download.js +353 -0
  14. package/dist/nodes/lib-video-download.js.map +1 -0
  15. package/dist/nodes/model3d/analysis.d.ts +16 -0
  16. package/dist/nodes/model3d/analysis.d.ts.map +1 -0
  17. package/dist/nodes/model3d/analysis.js +38 -0
  18. package/dist/nodes/model3d/analysis.js.map +1 -0
  19. package/dist/nodes/model3d/base.d.ts +28 -0
  20. package/dist/nodes/model3d/base.d.ts.map +1 -0
  21. package/dist/nodes/model3d/base.js +20 -0
  22. package/dist/nodes/model3d/base.js.map +1 -0
  23. package/dist/nodes/model3d/boolean-ops.d.ts +2 -0
  24. package/dist/nodes/model3d/boolean-ops.d.ts.map +1 -0
  25. package/dist/nodes/model3d/boolean-ops.js +172 -0
  26. package/dist/nodes/model3d/boolean-ops.js.map +1 -0
  27. package/dist/nodes/model3d/cleanup.d.ts +56 -0
  28. package/dist/nodes/model3d/cleanup.d.ts.map +1 -0
  29. package/dist/nodes/model3d/cleanup.js +144 -0
  30. package/dist/nodes/model3d/cleanup.js.map +1 -0
  31. package/dist/nodes/model3d/convert.d.ts +27 -0
  32. package/dist/nodes/model3d/convert.d.ts.map +1 -0
  33. package/dist/nodes/model3d/convert.js +66 -0
  34. package/dist/nodes/model3d/convert.js.map +1 -0
  35. package/dist/nodes/model3d/defaults.d.ts +34 -0
  36. package/dist/nodes/model3d/defaults.d.ts.map +1 -0
  37. package/dist/nodes/model3d/defaults.js +28 -0
  38. package/dist/nodes/model3d/defaults.js.map +1 -0
  39. package/dist/nodes/model3d/document-ops.d.ts +4 -0
  40. package/dist/nodes/model3d/document-ops.d.ts.map +1 -0
  41. package/dist/nodes/model3d/document-ops.js +40 -0
  42. package/dist/nodes/model3d/document-ops.js.map +1 -0
  43. package/dist/nodes/model3d/generation.d.ts +56 -0
  44. package/dist/nodes/model3d/generation.d.ts.map +1 -0
  45. package/dist/nodes/model3d/generation.js +203 -0
  46. package/dist/nodes/model3d/generation.js.map +1 -0
  47. package/dist/nodes/model3d/glb.d.ts +29 -0
  48. package/dist/nodes/model3d/glb.d.ts.map +1 -0
  49. package/dist/nodes/model3d/glb.js +255 -0
  50. package/dist/nodes/model3d/glb.js.map +1 -0
  51. package/dist/nodes/model3d/index.d.ts +22 -0
  52. package/dist/nodes/model3d/index.d.ts.map +1 -0
  53. package/dist/nodes/model3d/index.js +41 -0
  54. package/dist/nodes/model3d/index.js.map +1 -0
  55. package/dist/nodes/model3d/io.d.ts +81 -0
  56. package/dist/nodes/model3d/io.d.ts.map +1 -0
  57. package/dist/nodes/model3d/io.js +162 -0
  58. package/dist/nodes/model3d/io.js.map +1 -0
  59. package/dist/nodes/model3d/mesh-ops.d.ts +40 -0
  60. package/dist/nodes/model3d/mesh-ops.d.ts.map +1 -0
  61. package/dist/nodes/model3d/mesh-ops.js +775 -0
  62. package/dist/nodes/model3d/mesh-ops.js.map +1 -0
  63. package/dist/nodes/model3d/nodes.d.ts +2 -0
  64. package/dist/nodes/model3d/nodes.d.ts.map +1 -0
  65. package/dist/nodes/model3d/nodes.js +2 -0
  66. package/dist/nodes/model3d/nodes.js.map +1 -0
  67. package/dist/nodes/model3d/ops.d.ts +44 -0
  68. package/dist/nodes/model3d/ops.d.ts.map +1 -0
  69. package/dist/nodes/model3d/ops.js +142 -0
  70. package/dist/nodes/model3d/ops.js.map +1 -0
  71. package/dist/nodes/model3d/render.d.ts +51 -0
  72. package/dist/nodes/model3d/render.d.ts.map +1 -0
  73. package/dist/nodes/model3d/render.js +124 -0
  74. package/dist/nodes/model3d/render.js.map +1 -0
  75. package/dist/nodes/model3d/render3d-core.d.ts +177 -0
  76. package/dist/nodes/model3d/render3d-core.d.ts.map +1 -0
  77. package/dist/nodes/model3d/render3d-core.js +366 -0
  78. package/dist/nodes/model3d/render3d-core.js.map +1 -0
  79. package/dist/nodes/model3d/render3d-headless.d.ts +75 -0
  80. package/dist/nodes/model3d/render3d-headless.d.ts.map +1 -0
  81. package/dist/nodes/model3d/render3d-headless.js +190 -0
  82. package/dist/nodes/model3d/render3d-headless.js.map +1 -0
  83. package/dist/nodes/model3d/render3d-page.d.ts +16 -0
  84. package/dist/nodes/model3d/render3d-page.d.ts.map +1 -0
  85. package/dist/nodes/model3d/render3d-page.js +51 -0
  86. package/dist/nodes/model3d/render3d-page.js.map +1 -0
  87. package/dist/nodes/model3d/transforms.d.ts +56 -0
  88. package/dist/nodes/model3d/transforms.d.ts.map +1 -0
  89. package/dist/nodes/model3d/transforms.js +148 -0
  90. package/dist/nodes/model3d/transforms.js.map +1 -0
  91. package/dist/nodes/model3d/types.d.ts +82 -0
  92. package/dist/nodes/model3d/types.d.ts.map +1 -0
  93. package/dist/nodes/model3d/types.js +2 -0
  94. package/dist/nodes/model3d/types.js.map +1 -0
  95. package/dist/nodes/model3d/utils.d.ts +46 -0
  96. package/dist/nodes/model3d/utils.d.ts.map +1 -0
  97. package/dist/nodes/model3d/utils.js +190 -0
  98. package/dist/nodes/model3d/utils.js.map +1 -0
  99. package/dist/nodes/model3d.d.ts +2 -0
  100. package/dist/nodes/model3d.d.ts.map +1 -0
  101. package/dist/nodes/model3d.js +2 -0
  102. package/dist/nodes/model3d.js.map +1 -0
  103. package/dist/nodes/placeholder-values.d.ts +10 -0
  104. package/dist/nodes/placeholder-values.d.ts.map +1 -0
  105. package/dist/nodes/placeholder-values.js +19 -0
  106. package/dist/nodes/placeholder-values.js.map +1 -0
  107. package/dist/nodes/script.d.ts +161 -0
  108. package/dist/nodes/script.d.ts.map +1 -0
  109. package/dist/nodes/script.js +673 -0
  110. package/dist/nodes/script.js.map +1 -0
  111. package/dist/nodes/storyboard.d.ts +269 -0
  112. package/dist/nodes/storyboard.d.ts.map +1 -0
  113. package/dist/nodes/storyboard.js +1017 -0
  114. package/dist/nodes/storyboard.js.map +1 -0
  115. package/dist/nodes/timeline/assetFiles.d.ts +19 -0
  116. package/dist/nodes/timeline/assetFiles.d.ts.map +1 -0
  117. package/dist/nodes/timeline/assetFiles.js +52 -0
  118. package/dist/nodes/timeline/assetFiles.js.map +1 -0
  119. package/dist/nodes/timeline/compositeRender.d.ts +60 -0
  120. package/dist/nodes/timeline/compositeRender.d.ts.map +1 -0
  121. package/dist/nodes/timeline/compositeRender.js +508 -0
  122. package/dist/nodes/timeline/compositeRender.js.map +1 -0
  123. package/dist/nodes/timeline/contactSheet.d.ts +43 -0
  124. package/dist/nodes/timeline/contactSheet.d.ts.map +1 -0
  125. package/dist/nodes/timeline/contactSheet.js +78 -0
  126. package/dist/nodes/timeline/contactSheet.js.map +1 -0
  127. package/dist/nodes/timeline/outputFormats.d.ts +69 -0
  128. package/dist/nodes/timeline/outputFormats.d.ts.map +1 -0
  129. package/dist/nodes/timeline/outputFormats.js +173 -0
  130. package/dist/nodes/timeline/outputFormats.js.map +1 -0
  131. package/dist/nodes/timeline/pngSequence.d.ts +44 -0
  132. package/dist/nodes/timeline/pngSequence.d.ts.map +1 -0
  133. package/dist/nodes/timeline/pngSequence.js +172 -0
  134. package/dist/nodes/timeline/pngSequence.js.map +1 -0
  135. package/dist/nodes/timeline/rasterizers.d.ts +47 -0
  136. package/dist/nodes/timeline/rasterizers.d.ts.map +1 -0
  137. package/dist/nodes/timeline/rasterizers.js +103 -0
  138. package/dist/nodes/timeline/rasterizers.js.map +1 -0
  139. package/dist/nodes/timeline/rawFrames.d.ts +149 -0
  140. package/dist/nodes/timeline/rawFrames.d.ts.map +1 -0
  141. package/dist/nodes/timeline/rawFrames.js +598 -0
  142. package/dist/nodes/timeline/rawFrames.js.map +1 -0
  143. package/dist/nodes/timeline.d.ts +206 -0
  144. package/dist/nodes/timeline.d.ts.map +1 -0
  145. package/dist/nodes/timeline.js +1395 -0
  146. package/dist/nodes/timeline.js.map +1 -0
  147. package/dist/nodes/video.d.ts +705 -0
  148. package/dist/nodes/video.d.ts.map +1 -0
  149. package/dist/nodes/video.js +2672 -0
  150. package/dist/nodes/video.js.map +1 -0
  151. package/dist/render3d-page.js +4118 -0
  152. package/package.json +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rasterizers.js","sourceRoot":"","sources":["../../../src/nodes/timeline/rasterizers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Raw RGBA plumbing between ffmpeg and the timeline compositor.
3
+ *
4
+ * The compositor wants CPU-side straight-alpha RGBA for every layer of every
5
+ * frame, and hands back the composited frame in the same form. ffmpeg does the
6
+ * decoding and encoding on both ends:
7
+ *
8
+ * - {@link decodeImageRgba} decodes a still once.
9
+ * - {@link openVideoFrameStream} decodes a clip lazily, one frame at a time.
10
+ * Frames are consumed in timeline order, which for a clip is source order, so
11
+ * a single streaming decode covers the whole render — no seeking, and no
12
+ * multi-gigabyte scratch file.
13
+ * - {@link openFrameEncoder} pipes composited frames into one long-running
14
+ * encoder.
15
+ */
16
+ /** Pixel dimensions of a decoded source. */
17
+ interface RawSize {
18
+ width: number;
19
+ height: number;
20
+ }
21
+ /** Decoded straight-alpha RGBA8 pixels. */
22
+ export interface RawImage extends RawSize {
23
+ rgba: Uint8Array;
24
+ }
25
+ /**
26
+ * Largest size that fits `source` inside `canvas` without upscaling and
27
+ * without changing its aspect ratio. Decoding beyond the frame the layer is
28
+ * composited into buys nothing; upscaling below it would change what a
29
+ * source-pixel unit (a blur radius, a corner radius) means.
30
+ */
31
+ export declare function fitWithin(source: RawSize, canvas: RawSize): RawSize;
32
+ /** Probe a media file's video dimensions, or `null` when it has no video. */
33
+ export declare function probeVideoSize(filePath: string): Promise<RawSize | null>;
34
+ /** Decode a still image to straight-alpha RGBA at `size`. */
35
+ export declare function decodeImageRgba(filePath: string, size: RawSize): Promise<RawImage>;
36
+ /**
37
+ * A clip's frames, decoded on demand in timeline order.
38
+ *
39
+ * `frameAt` may only move forward: intermediate frames are decoded and dropped,
40
+ * which is what happens when a layer is skipped for a few frames (a video layer
41
+ * past the simultaneous-layer cap, say). Once the source runs out, the last
42
+ * frame is held — the same thing a `<video>` element shows in the preview when
43
+ * a clip outlives its media.
44
+ */
45
+ export interface VideoFrameStream extends RawSize {
46
+ frameAt(index: number): Promise<Uint8Array | null>;
47
+ close(): void;
48
+ }
49
+ interface VideoFrameStreamOptions {
50
+ filePath: string;
51
+ /** Decoded frame size (already fitted to the sequence frame). */
52
+ size: RawSize;
53
+ /** Timeline frame rate — one decoded frame per timeline frame. */
54
+ fps: number;
55
+ /** Source seconds to skip before the first frame (the clip's in point). */
56
+ startSec: number;
57
+ /** Playback rate: >1 consumes the source faster than the timeline. */
58
+ speed: number;
59
+ }
60
+ /**
61
+ * Start decoding `filePath` into RGBA frames at the timeline's frame rate.
62
+ * `setpts` applies the clip's speed so decoded frame *k* is exactly the source
63
+ * frame the preview shows at timeline frame *k* of the clip.
64
+ */
65
+ export declare function openVideoFrameStream(opts: VideoFrameStreamOptions): VideoFrameStream;
66
+ /**
67
+ * A clip's frames addressed by absolute source time rather than by frame index.
68
+ *
69
+ * The forward-only stream above is enough while a clip consumes its source at a
70
+ * constant rate: decoded frame *k* is the frame the timeline wants at clip
71
+ * frame *k*. A time remap breaks that — the source position is a curve, and a
72
+ * reverse curve walks it backwards. A bounded window retains decoded frames
73
+ * for descending requests and reopens the forward-only decode when a request
74
+ * falls outside that window.
75
+ */
76
+ export interface SourceFrameStream extends RawSize {
77
+ /** The frame at absolute source time `sec`, or `null` past the media's end. */
78
+ frameAtSourceSec(sec: number): Promise<Uint8Array | null>;
79
+ /** Number of decoder reopens. */
80
+ readonly reopens: number;
81
+ /** Decoded bytes currently retained for reverse reads. */
82
+ readonly reverseWindowBytes: number;
83
+ close(): void;
84
+ }
85
+ /**
86
+ * Open a source-time-addressed decode of `filePath`, sampling the source on a
87
+ * `1/fps` grid when it matches a verified regular source grid. Other requests
88
+ * use a fresh FFmpeg seek to retain its timestamp and timebase behavior.
89
+ *
90
+ * The underlying decode always runs at the source's own rate (`speed: 1`): the
91
+ * remap curve, not `setpts`, decides which source instant a timeline frame
92
+ * shows.
93
+ */
94
+ export declare function openSourceFrameStream(opts: {
95
+ filePath: string;
96
+ size: RawSize;
97
+ fps: number;
98
+ startSec: number;
99
+ /** Maximum decoded bytes retained in one reverse window. */
100
+ maxWindowBytes?: number;
101
+ /** Maximum source-time span retained in one reverse window. */
102
+ maxWindowMs?: number;
103
+ }): SourceFrameStream;
104
+ /** A running encoder that turns written RGBA frames into an output file. */
105
+ export interface FrameEncoder {
106
+ write(rgba: Uint8Array): Promise<void>;
107
+ /** Close the input and wait for the file to be finalized. */
108
+ finish(): Promise<void>;
109
+ abort(): void;
110
+ }
111
+ /**
112
+ * Report whether this ffmpeg build ships `encoder`.
113
+ *
114
+ * ProRes 4444 and VP9 are both optional at build time — a distro ffmpeg may
115
+ * carry neither — and a render that discovers this after compositing every
116
+ * frame has burned the whole render. Probed once before the frame loop starts.
117
+ *
118
+ * A build that cannot be asked (no ffmpeg, an unparsable listing) answers
119
+ * `false`, so the caller refuses with a message naming the encoder rather than
120
+ * failing on ffmpeg's own output an hour later.
121
+ */
122
+ export declare function ffmpegHasEncoder(encoder: string): Promise<boolean>;
123
+ /**
124
+ * H.264 at `yuv420p`, converted to BT.709 and tagged as such.
125
+ *
126
+ * The same reasoning as `outputFormats.ts`: raw RGBA in, YUV out, and without
127
+ * the scaler and the tags ffmpeg uses BT.601 and records nothing, so the file
128
+ * plays back off-hue everywhere. A caller that passes its own `encoderArgs`
129
+ * owns its own colour handling.
130
+ */
131
+ export declare function defaultEncoderArgs(): string[];
132
+ /**
133
+ * Start encoding RGBA frames written at `fps` into `outPath`.
134
+ *
135
+ * `encoderArgs` decides the codec, profile and pixel format — the alpha-capable
136
+ * combinations are the table in `outputFormats.ts`. Frames arrive as
137
+ * straight-alpha RGBA either way; a `yuv*` pixel format drops the channel, a
138
+ * `yuva*` one keeps it.
139
+ */
140
+ export declare function openFrameEncoder(opts: {
141
+ outPath: string;
142
+ width: number;
143
+ height: number;
144
+ fps: number;
145
+ /** Output codec arguments. Defaults to H.264 at `yuv420p`. */
146
+ encoderArgs?: readonly string[];
147
+ }): FrameEncoder;
148
+ export {};
149
+ //# sourceMappingURL=rawFrames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawFrames.d.ts","sourceRoot":"","sources":["../../../src/nodes/timeline/rawFrames.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,4CAA4C;AAC5C,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,QAAS,SAAQ,OAAO;IACvC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAUnE;AAED,6EAA6E;AAC7E,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAe9E;AAkBD,6DAA6D;AAC7D,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,QAAQ,CAAC,CAyCnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnD,KAAK,IAAI,IAAI,CAAC;CACf;AAKD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,uBAAuB,GAC5B,gBAAgB,CA4DlB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,+EAA+E;IAC/E,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC1D,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC;CACf;AAkDD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,iBAAiB,CAuHpB;AAsGD,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,6DAA6D;IAC7D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAaxE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAiB7C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,GAAG,YAAY,CAqFf"}