frameyard 0.4.0 → 0.6.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 (175) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/GLOSSARY.md +156 -24
  3. package/README.md +103 -31
  4. package/dist/cli.js +112 -19
  5. package/dist/cli.js.map +1 -1
  6. package/dist/composition/adapter.d.ts +30 -0
  7. package/dist/composition/adapter.d.ts.map +1 -0
  8. package/dist/composition/adapter.js +2 -0
  9. package/dist/composition/adapter.js.map +1 -0
  10. package/dist/composition/animation.d.ts +19 -0
  11. package/dist/composition/animation.d.ts.map +1 -0
  12. package/dist/composition/animation.js +55 -0
  13. package/dist/composition/animation.js.map +1 -0
  14. package/dist/composition/attributes.d.ts +7 -0
  15. package/dist/composition/attributes.d.ts.map +1 -0
  16. package/dist/composition/attributes.js +24 -0
  17. package/dist/composition/attributes.js.map +1 -0
  18. package/dist/composition/descriptor.d.ts +30 -0
  19. package/dist/composition/descriptor.d.ts.map +1 -0
  20. package/dist/composition/descriptor.js +188 -0
  21. package/dist/composition/descriptor.js.map +1 -0
  22. package/dist/composition/diagnostics.d.ts +12 -0
  23. package/dist/composition/diagnostics.d.ts.map +1 -0
  24. package/dist/composition/diagnostics.js +38 -0
  25. package/dist/composition/diagnostics.js.map +1 -0
  26. package/dist/composition/index.d.ts +12 -0
  27. package/dist/composition/index.d.ts.map +1 -0
  28. package/dist/composition/index.js +7 -0
  29. package/dist/composition/index.js.map +1 -0
  30. package/dist/composition/media.d.ts +27 -0
  31. package/dist/composition/media.d.ts.map +1 -0
  32. package/dist/composition/media.js +162 -0
  33. package/dist/composition/media.js.map +1 -0
  34. package/dist/composition/paths.d.ts +5 -0
  35. package/dist/composition/paths.d.ts.map +1 -0
  36. package/dist/composition/paths.js +16 -0
  37. package/dist/composition/paths.js.map +1 -0
  38. package/dist/composition/transcripts.d.ts +19 -0
  39. package/dist/composition/transcripts.d.ts.map +1 -0
  40. package/dist/composition/transcripts.js +57 -0
  41. package/dist/composition/transcripts.js.map +1 -0
  42. package/dist/composition/walk.d.ts +10 -0
  43. package/dist/composition/walk.d.ts.map +1 -0
  44. package/dist/composition/walk.js +32 -0
  45. package/dist/composition/walk.js.map +1 -0
  46. package/dist/contracts.d.ts +14 -0
  47. package/dist/contracts.d.ts.map +1 -1
  48. package/dist/contracts.js.map +1 -1
  49. package/dist/errors.d.ts +1 -1
  50. package/dist/errors.d.ts.map +1 -1
  51. package/dist/errors.js.map +1 -1
  52. package/dist/html/document-adapter.d.ts +5 -0
  53. package/dist/html/document-adapter.d.ts.map +1 -0
  54. package/dist/html/document-adapter.js +17 -0
  55. package/dist/html/document-adapter.js.map +1 -0
  56. package/dist/html/parse.d.ts +2 -6
  57. package/dist/html/parse.d.ts.map +1 -1
  58. package/dist/html/parse.js.map +1 -1
  59. package/dist/html/validate.d.ts.map +1 -1
  60. package/dist/html/validate.js +92 -375
  61. package/dist/html/validate.js.map +1 -1
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +1 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/preview/main.d.ts.map +1 -1
  67. package/dist/preview/main.js +93 -13
  68. package/dist/preview/main.js.map +1 -1
  69. package/dist/preview/timeline-data.d.ts +85 -0
  70. package/dist/preview/timeline-data.d.ts.map +1 -0
  71. package/dist/preview/timeline-data.js +2 -0
  72. package/dist/preview/timeline-data.js.map +1 -0
  73. package/dist/preview/timeline-host.d.ts +19 -0
  74. package/dist/preview/timeline-host.d.ts.map +1 -0
  75. package/dist/preview/timeline-host.js +297 -0
  76. package/dist/preview/timeline-host.js.map +1 -0
  77. package/dist/preview/timeline-main.d.ts +17 -0
  78. package/dist/preview/timeline-main.d.ts.map +1 -0
  79. package/dist/preview/timeline-main.js +364 -0
  80. package/dist/preview/timeline-main.js.map +1 -0
  81. package/dist/project.d.ts +16 -1
  82. package/dist/project.d.ts.map +1 -1
  83. package/dist/project.js +81 -26
  84. package/dist/project.js.map +1 -1
  85. package/dist/renderer/browser.d.ts +2 -0
  86. package/dist/renderer/browser.d.ts.map +1 -1
  87. package/dist/renderer/browser.js +38 -6
  88. package/dist/renderer/browser.js.map +1 -1
  89. package/dist/renderer/ffmpeg.d.ts +61 -0
  90. package/dist/renderer/ffmpeg.d.ts.map +1 -1
  91. package/dist/renderer/ffmpeg.js +198 -0
  92. package/dist/renderer/ffmpeg.js.map +1 -1
  93. package/dist/renderer/index.d.ts.map +1 -1
  94. package/dist/renderer/index.js +18 -7
  95. package/dist/renderer/index.js.map +1 -1
  96. package/dist/renderer/timeline.d.ts +109 -0
  97. package/dist/renderer/timeline.d.ts.map +1 -0
  98. package/dist/renderer/timeline.js +984 -0
  99. package/dist/renderer/timeline.js.map +1 -0
  100. package/dist/runtime/document-adapter.d.ts +4 -0
  101. package/dist/runtime/document-adapter.d.ts.map +1 -0
  102. package/dist/runtime/document-adapter.js +19 -0
  103. package/dist/runtime/document-adapter.js.map +1 -0
  104. package/dist/runtime/host.d.ts +2 -0
  105. package/dist/runtime/host.d.ts.map +1 -1
  106. package/dist/runtime/host.js +78 -183
  107. package/dist/runtime/host.js.map +1 -1
  108. package/dist/runtime/media.d.ts.map +1 -1
  109. package/dist/runtime/media.js +19 -50
  110. package/dist/runtime/media.js.map +1 -1
  111. package/dist/scaffold.d.ts.map +1 -1
  112. package/dist/scaffold.js +93 -23
  113. package/dist/scaffold.js.map +1 -1
  114. package/dist/server/preview-html.d.ts.map +1 -1
  115. package/dist/server/preview-html.js +15 -1
  116. package/dist/server/preview-html.js.map +1 -1
  117. package/dist/server/server.d.ts.map +1 -1
  118. package/dist/server/server.js +39 -1
  119. package/dist/server/server.js.map +1 -1
  120. package/dist/server/timeline-preview-data.d.ts +4 -0
  121. package/dist/server/timeline-preview-data.d.ts.map +1 -0
  122. package/dist/server/timeline-preview-data.js +97 -0
  123. package/dist/server/timeline-preview-data.js.map +1 -0
  124. package/dist/server/timeline-preview-html.d.ts +4 -0
  125. package/dist/server/timeline-preview-html.d.ts.map +1 -0
  126. package/dist/server/timeline-preview-html.js +227 -0
  127. package/dist/server/timeline-preview-html.js.map +1 -0
  128. package/dist/timeline/plan.d.ts +32 -0
  129. package/dist/timeline/plan.d.ts.map +1 -0
  130. package/dist/timeline/plan.js +68 -0
  131. package/dist/timeline/plan.js.map +1 -0
  132. package/dist/timeline/resolve.d.ts +60 -0
  133. package/dist/timeline/resolve.d.ts.map +1 -0
  134. package/dist/timeline/resolve.js +523 -0
  135. package/dist/timeline/resolve.js.map +1 -0
  136. package/dist/timeline/schema.d.ts +71 -0
  137. package/dist/timeline/schema.d.ts.map +1 -0
  138. package/dist/timeline/schema.js +425 -0
  139. package/dist/timeline/schema.js.map +1 -0
  140. package/dist/version.d.ts +1 -1
  141. package/dist/version.js +1 -1
  142. package/docs/adr/0002-make-frame-and-props-the-only-animation-state.md +2 -0
  143. package/docs/adr/0005-keep-parallel-rendering-opt-in-and-frame-ordered.md +2 -0
  144. package/docs/adr/0006-seek-embedded-media-from-the-frame-clock.md +4 -0
  145. package/docs/adr/0007-make-html-documents-the-composition-unit.md +1 -1
  146. package/docs/adr/0008-share-the-composition-document-grammar.md +18 -0
  147. package/docs/adr/0009-composite-production-frames-in-software.md +37 -0
  148. package/docs/adr/0010-make-timelines-the-render-unit.md +24 -0
  149. package/docs/adr/0011-compose-timeline-frames-in-a-live-browser-host.md +22 -0
  150. package/docs/adr/0012-render-timelines-with-segmented-lossless-clip-intermediates.md +31 -0
  151. package/docs/v0.1-design.md +135 -85
  152. package/examples/demo/README.md +11 -4
  153. package/examples/demo/timelines/demo.timeline.json +12 -0
  154. package/examples/demo/video.config.js +4 -0
  155. package/examples/video/README.md +105 -0
  156. package/examples/video/assets/clip.mp4 +0 -0
  157. package/examples/video/assets/clip.webm +0 -0
  158. package/examples/video/compositions/video-mp4.html +362 -0
  159. package/examples/video/compositions/video-overlay.html +350 -0
  160. package/examples/video/compositions/video.html +362 -0
  161. package/examples/video/props/video-timeline.json +10 -0
  162. package/examples/video/props/video.json +8 -0
  163. package/examples/video/scripts/make-clip.sh +109 -0
  164. package/examples/video/timelines/video-timeline-mp4.timeline.json +44 -0
  165. package/examples/video/timelines/video-timeline.timeline.json +44 -0
  166. package/examples/video/video.config.js +12 -0
  167. package/examples/webgl/README.md +30 -0
  168. package/examples/webgl/compositions/webgl.controller.js +200 -0
  169. package/examples/webgl/compositions/webgl.html +215 -0
  170. package/examples/webgl/props/webgl.json +6 -0
  171. package/examples/webgl/video.config.js +5 -0
  172. package/package.json +4 -2
  173. package/skills/frameyard/SKILL.md +18 -13
  174. package/skills/frameyard/references/json-results.md +2 -2
  175. package/skills/frameyard/references/timelines.md +141 -0
@@ -13,6 +13,11 @@ export const BROWSER_ARGS = [
13
13
  // software rasterizer shipped with the Playwright Chromium build.
14
14
  "--use-angle=swiftshader",
15
15
  "--enable-unsafe-swiftshader",
16
+ // SwiftShader already rasterizes WebGL in software. Routing every captured
17
+ // frame through GPU-process compositing adds a slow copy step without making
18
+ // the 2D output any less deterministic. Software compositing keeps WebGL on
19
+ // SwiftShader while removing that round trip. See ADR 0009.
20
+ "--disable-gpu-compositing",
16
21
  ];
17
22
  export const BROWSER_CONTEXT_OPTIONS = {
18
23
  viewport: { width: 1280, height: 720 },
@@ -89,6 +94,12 @@ export async function openCompositionSession(options) {
89
94
  });
90
95
  page = await context.newPage();
91
96
  page.setDefaultTimeout(60_000);
97
+ cdp = await context.newCDPSession(page);
98
+ if (options.transparentBackground) {
99
+ await cdp.send("Emulation.setDefaultBackgroundColorOverride", {
100
+ color: { r: 0, g: 0, b: 0, a: 0 },
101
+ });
102
+ }
92
103
  const pageErrors = [];
93
104
  page.on("pageerror", (error) => {
94
105
  pageErrors.push(error.message);
@@ -106,7 +117,9 @@ export async function openCompositionSession(options) {
106
117
  Boolean(window.__fyError), undefined, { timeout: 30_000 });
107
118
  const initError = await page.evaluate(() => window.__fyError);
108
119
  if (initError) {
109
- throw new FrameyardError(initError.code, initError.message);
120
+ throw new FrameyardError(initError.code, initError.message, {
121
+ diagnostics: initError.diagnostics,
122
+ });
110
123
  }
111
124
  let loaded;
112
125
  try {
@@ -114,6 +127,10 @@ export async function openCompositionSession(options) {
114
127
  const api = window.__fy;
115
128
  await api.ready;
116
129
  await api.load({ props });
130
+ // A video painted at the load frame can stay cached in the compositor
131
+ // when an ancestor animates opacity. Keep the composition hidden until
132
+ // the first seek so the first visible paint is the requested frame.
133
+ document.querySelector("fy-composition")?.setAttribute("data-fy-pending", "");
117
134
  return {
118
135
  metadata: api.metadata,
119
136
  props: api.props,
@@ -145,7 +162,6 @@ export async function openCompositionSession(options) {
145
162
  }));
146
163
  // Loading is complete. Frame production must not depend on new network data.
147
164
  await page.route("**/*", (route) => route.abort("blockedbyclient"));
148
- cdp = await context.newCDPSession(page);
149
165
  const activePage = page;
150
166
  const activeCdp = cdp;
151
167
  const assertHealthy = () => {
@@ -154,6 +170,7 @@ export async function openCompositionSession(options) {
154
170
  }
155
171
  };
156
172
  assertHealthy();
173
+ let firstSeek = true;
157
174
  const session = {
158
175
  entry: options.entry,
159
176
  controller: options.info.controller
@@ -168,16 +185,31 @@ export async function openCompositionSession(options) {
168
185
  transcriptClips: loaded.transcriptClips,
169
186
  async seek(frame) {
170
187
  assertHealthy();
188
+ const reveal = firstSeek;
189
+ firstSeek = false;
171
190
  try {
172
- await activePage.evaluate(async (targetFrame) => {
191
+ await activePage.evaluate(async ({ targetFrame, reveal }) => {
173
192
  const api = window.__fy;
174
- api.seek(targetFrame);
175
- await api.settle();
176
- }, frame);
193
+ try {
194
+ api.seek(targetFrame);
195
+ await api.settle();
196
+ }
197
+ finally {
198
+ if (reveal) {
199
+ document.querySelector("fy-composition")?.removeAttribute("data-fy-pending");
200
+ }
201
+ }
202
+ }, { targetFrame: frame, reveal });
177
203
  }
178
204
  catch (error) {
179
205
  throw browserCommandError(error);
180
206
  }
207
+ if (reveal) {
208
+ // Let the first visible paint happen before the caller captures.
209
+ await activePage.evaluate(() => new Promise((resolve) => {
210
+ requestAnimationFrame(() => requestAnimationFrame(() => resolve()));
211
+ }));
212
+ }
181
213
  assertHealthy();
182
214
  },
183
215
  async capture() {
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/renderer/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/renderer/browser.ts"],"names":[],"mappings":"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"}
@@ -54,5 +54,66 @@ export declare function startVideoEncoder(options: {
54
54
  audioPath?: string;
55
55
  signal?: AbortSignal;
56
56
  }): Promise<VideoEncoder>;
57
+ export interface TimelineCompositeLayer {
58
+ kind: "composition" | "timeline" | "video" | "image";
59
+ path: string;
60
+ sourceWidth: number;
61
+ sourceHeight: number;
62
+ /** Explicit clip box. Both fields are set together; otherwise the stage is the box. */
63
+ width?: number;
64
+ height?: number;
65
+ fit: "contain" | "cover" | "stretch";
66
+ x: number;
67
+ y: number;
68
+ scale: number;
69
+ rotation: number;
70
+ opacity: number;
71
+ /** Absolute source frame at the segment start, for video inputs. */
72
+ sourceStartFrame?: number;
73
+ }
74
+ /** Encode a numbered PNG sequence into a lossless alpha-preserving FFV1 file. */
75
+ export declare function encodePngSequenceToFfv1(options: {
76
+ pattern: string;
77
+ outputPath: string;
78
+ fps: number;
79
+ signal?: AbortSignal;
80
+ }): Promise<void>;
81
+ /** Composites one timeline segment into H.264 or an alpha-preserving FFV1 file. */
82
+ export declare function compositeTimelineSegment(options: {
83
+ outputPath: string;
84
+ width: number;
85
+ height: number;
86
+ fps: number;
87
+ frames: number;
88
+ /** CSS color, "black", or "transparent" for nested timelines. */
89
+ background: string;
90
+ layers: readonly TimelineCompositeLayer[];
91
+ codec: "h264" | "ffv1";
92
+ signal?: AbortSignal;
93
+ }): Promise<void>;
94
+ /** Concatenates encoded timeline segments without re-encoding. */
95
+ export declare function concatTimelineSegments(options: {
96
+ segmentPaths: readonly string[];
97
+ listPath: string;
98
+ outputPath: string;
99
+ signal?: AbortSignal;
100
+ }): Promise<void>;
101
+ /** Muxes a mixed WAV into an already encoded video without re-encoding video. */
102
+ export declare function muxVideoWithAudio(options: {
103
+ videoPath: string;
104
+ audioPath: string;
105
+ outputPath: string;
106
+ signal?: AbortSignal;
107
+ }): Promise<void>;
108
+ /** Composites one timeline frame to a PNG without encoding a segment. */
109
+ export declare function compositeTimelineFrame(options: {
110
+ outputPath: string;
111
+ width: number;
112
+ height: number;
113
+ fps: number;
114
+ background: string;
115
+ layers: readonly TimelineCompositeLayer[];
116
+ signal?: AbortSignal;
117
+ }): Promise<void>;
57
118
  export {};
58
119
  //# sourceMappingURL=ffmpeg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../../src/renderer/ffmpeg.ts"],"names":[],"mappings":"AAwBA,gFAAgF;AAChF,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlF;AAED,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAWrG;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2FAA2F;AAC3F,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DhB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CAyKxB"}
1
+ {"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../../src/renderer/ffmpeg.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { writeFile } from "node:fs/promises";
2
3
  import { FrameyardError } from "../errors.js";
3
4
  const STDERR_LIMIT = 16 * 1024;
4
5
  function captureTail(child) {
@@ -122,6 +123,7 @@ export async function mixAudioTimeline(options) {
122
123
  `volume=${formatNumber(clip.volume)}`,
123
124
  "aresample=48000",
124
125
  "aformat=sample_fmts=fltp:channel_layouts=stereo",
126
+ "apad",
125
127
  ];
126
128
  if (delayMs > 0) {
127
129
  chain.push(`adelay=${delayMs}|${delayMs}`);
@@ -265,4 +267,200 @@ export async function startVideoEncoder(options) {
265
267
  abort,
266
268
  };
267
269
  }
270
+ function ffmpegBackgroundColor(value) {
271
+ if (value === "transparent") {
272
+ return "black@0.0";
273
+ }
274
+ if (value === "black") {
275
+ return "black";
276
+ }
277
+ const short = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(value);
278
+ if (short) {
279
+ return `0x${short[1]}${short[1]}${short[2]}${short[2]}${short[3]}${short[3]}`;
280
+ }
281
+ const long = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(value);
282
+ if (long) {
283
+ return `0x${long[1]}${long[2]}${long[3]}`;
284
+ }
285
+ const withAlpha = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(value);
286
+ if (withAlpha) {
287
+ const alpha = Number.parseInt(withAlpha[4], 16) / 255;
288
+ return `0x${withAlpha[1]}${withAlpha[2]}${withAlpha[3]}@${alpha.toFixed(3)}`;
289
+ }
290
+ if (/^[a-zA-Z]+$/.test(value)) {
291
+ return value;
292
+ }
293
+ return "black";
294
+ }
295
+ function fitFilter(layer, stageWidth, stageHeight) {
296
+ const width = layer.width ?? stageWidth;
297
+ const height = layer.height ?? stageHeight;
298
+ const sourceWidth = Math.max(1, layer.sourceWidth);
299
+ const sourceHeight = Math.max(1, layer.sourceHeight);
300
+ if (layer.fit === "cover") {
301
+ return `scale=${width}:${height}:force_original_aspect_ratio=increase,crop=${width}:${height}`;
302
+ }
303
+ if (layer.fit === "stretch") {
304
+ return `scale=${width}:${height}`;
305
+ }
306
+ const scale = Math.min(width / sourceWidth, height / sourceHeight);
307
+ const fittedWidth = Math.max(1, Math.round(sourceWidth * scale));
308
+ const fittedHeight = Math.max(1, Math.round(sourceHeight * scale));
309
+ return `scale=${fittedWidth}:${fittedHeight},pad=${width}:${height}:(ow-iw)/2:(oh-ih)/2:color=black@0`;
310
+ }
311
+ function layerFilter(layer, stageWidth, stageHeight, fps) {
312
+ const filters = [
313
+ // Matroska and WebM timestamps can be quantized to milliseconds. Normalize
314
+ // every timed layer to the project frame rate before overlay framesync so
315
+ // it does not duplicate or drop frames. Still images are already static.
316
+ ...(layer.kind === "image" ? [] : [`fps=${formatNumber(fps)}`]),
317
+ fitFilter(layer, stageWidth, stageHeight),
318
+ "format=rgba",
319
+ ];
320
+ if (layer.scale !== 1) {
321
+ filters.push(`scale=iw*${formatNumber(layer.scale)}:ih*${formatNumber(layer.scale)}`);
322
+ }
323
+ if (layer.rotation !== 0) {
324
+ filters.push(`rotate=angle=${formatNumber(layer.rotation)}*PI/180:fillcolor=black@0`);
325
+ }
326
+ if (layer.opacity < 1) {
327
+ filters.push(`colorchannelmixer=aa=${formatNumber(layer.opacity)}`);
328
+ }
329
+ return filters.join(",");
330
+ }
331
+ /** Encode a numbered PNG sequence into a lossless alpha-preserving FFV1 file. */
332
+ export async function encodePngSequenceToFfv1(options) {
333
+ await runCaptured("ffmpeg", [
334
+ "-y",
335
+ "-v",
336
+ "error",
337
+ "-framerate",
338
+ formatNumber(options.fps),
339
+ "-i",
340
+ options.pattern,
341
+ "-c:v",
342
+ "ffv1",
343
+ "-level",
344
+ "3",
345
+ "-pix_fmt",
346
+ "bgra",
347
+ options.outputPath,
348
+ ], { signal: options.signal });
349
+ }
350
+ /** Composites one timeline segment into H.264 or an alpha-preserving FFV1 file. */
351
+ export async function compositeTimelineSegment(options) {
352
+ const durationSeconds = options.frames / options.fps;
353
+ const args = [
354
+ "-y",
355
+ "-v",
356
+ "error",
357
+ "-f",
358
+ "lavfi",
359
+ "-i",
360
+ `color=c=${ffmpegBackgroundColor(options.background)}:s=${options.width}x${options.height}:r=${formatNumber(options.fps)}:d=${formatNumber(durationSeconds)}`,
361
+ ];
362
+ const filters = [
363
+ options.background === "transparent" ? "[0:v]format=rgba,colorchannelmixer=aa=0[base0]" : "[0:v]format=rgba[base0]",
364
+ ];
365
+ let current = "base0";
366
+ let inputIndex = 0;
367
+ let includedIndex = 0;
368
+ for (const layer of options.layers) {
369
+ if (layer.opacity <= 0 || layer.scale <= 0) {
370
+ continue;
371
+ }
372
+ if (layer.kind === "video") {
373
+ const startSeconds = (layer.sourceStartFrame ?? 0) / options.fps;
374
+ args.push("-ss", formatNumber(startSeconds), "-t", formatNumber(durationSeconds), "-i", layer.path, "-an");
375
+ }
376
+ else if (layer.kind === "image") {
377
+ args.push("-loop", "1", "-framerate", formatNumber(options.fps), "-t", formatNumber(durationSeconds), "-i", layer.path, "-an");
378
+ }
379
+ else {
380
+ args.push("-i", layer.path);
381
+ }
382
+ inputIndex += 1;
383
+ includedIndex += 1;
384
+ filters.push(`[${inputIndex}:v]${layerFilter(layer, options.width, options.height, options.fps)}[l${includedIndex}]`);
385
+ filters.push(`[${current}][l${includedIndex}]overlay=x=(main_w-overlay_w)/2+${formatNumber(layer.x)}:y=(main_h-overlay_h)/2+${formatNumber(layer.y)}:format=auto[b${includedIndex}]`);
386
+ current = `b${includedIndex}`;
387
+ }
388
+ filters.push(`[${current}]format=${options.codec === "ffv1" ? "bgra" : "yuv420p"}[out]`);
389
+ args.push("-filter_complex", filters.join(";"), "-map", "[out]", "-frames:v", String(options.frames), "-r", formatNumber(options.fps), "-an");
390
+ if (options.codec === "ffv1") {
391
+ args.push("-c:v", "ffv1", "-level", "3", "-pix_fmt", "bgra");
392
+ }
393
+ else {
394
+ args.push("-c:v", "libx264", "-preset", "medium", "-crf", "20", "-pix_fmt", "yuv420p");
395
+ }
396
+ args.push(options.outputPath);
397
+ await runCaptured("ffmpeg", args, { signal: options.signal });
398
+ }
399
+ /** Concatenates encoded timeline segments without re-encoding. */
400
+ export async function concatTimelineSegments(options) {
401
+ const list = options.segmentPaths.map((segmentPath) => `file '${segmentPath.replaceAll("'", "'\\''")}'`).join("\n");
402
+ await writeFile(options.listPath, `${list}\n`);
403
+ await runCaptured("ffmpeg", ["-y", "-v", "error", "-f", "concat", "-safe", "0", "-i", options.listPath, "-c", "copy", options.outputPath], { signal: options.signal });
404
+ }
405
+ /** Muxes a mixed WAV into an already encoded video without re-encoding video. */
406
+ export async function muxVideoWithAudio(options) {
407
+ await runCaptured("ffmpeg", [
408
+ "-y",
409
+ "-v",
410
+ "error",
411
+ "-i",
412
+ options.videoPath,
413
+ "-i",
414
+ options.audioPath,
415
+ "-map",
416
+ "0:v:0",
417
+ "-map",
418
+ "1:a:0",
419
+ "-c:v",
420
+ "copy",
421
+ "-c:a",
422
+ "aac",
423
+ "-b:a",
424
+ "192k",
425
+ "-shortest",
426
+ options.outputPath,
427
+ ], { signal: options.signal });
428
+ }
429
+ /** Composites one timeline frame to a PNG without encoding a segment. */
430
+ export async function compositeTimelineFrame(options) {
431
+ const args = [
432
+ "-y",
433
+ "-v",
434
+ "error",
435
+ "-f",
436
+ "lavfi",
437
+ "-i",
438
+ `color=c=${ffmpegBackgroundColor(options.background)}:s=${options.width}x${options.height}:r=${formatNumber(options.fps)}:d=${formatNumber(1 / options.fps)}`,
439
+ ];
440
+ const filters = [
441
+ options.background === "transparent" ? "[0:v]format=rgba,colorchannelmixer=aa=0[base0]" : "[0:v]format=rgba[base0]",
442
+ ];
443
+ let current = "base0";
444
+ let inputIndex = 0;
445
+ let includedIndex = 0;
446
+ for (const layer of options.layers) {
447
+ if (layer.opacity <= 0 || layer.scale <= 0) {
448
+ continue;
449
+ }
450
+ if (layer.kind === "video") {
451
+ args.push("-ss", formatNumber((layer.sourceStartFrame ?? 0) / options.fps), "-i", layer.path, "-an");
452
+ }
453
+ else {
454
+ args.push("-i", layer.path);
455
+ }
456
+ inputIndex += 1;
457
+ includedIndex += 1;
458
+ filters.push(`[${inputIndex}:v]${layerFilter(layer, options.width, options.height, options.fps)}[l${includedIndex}]`);
459
+ filters.push(`[${current}][l${includedIndex}]overlay=x=(main_w-overlay_w)/2+${formatNumber(layer.x)}:y=(main_h-overlay_h)/2+${formatNumber(layer.y)}:format=auto[b${includedIndex}]`);
460
+ current = `b${includedIndex}`;
461
+ }
462
+ filters.push(`[${current}]format=rgba[out]`);
463
+ args.push("-filter_complex", filters.join(";"), "-map", "[out]", "-frames:v", "1", "-update", "1", "-c:v", "png", "-pix_fmt", "rgba", options.outputPath);
464
+ await runCaptured("ffmpeg", args, { signal: options.signal });
465
+ }
268
466
  //# sourceMappingURL=ffmpeg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/renderer/ffmpeg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/renderer/ffmpeg.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
@@ -121,18 +121,29 @@ async function withSessions(options, resolveSessionCount, callback) {
121
121
  try {
122
122
  const open = async () => {
123
123
  throwIfAborted(options.signal);
124
- sessions.push(await openCompositionSession({
124
+ return openCompositionSession({
125
125
  serverUrl: server.url,
126
126
  entry: composition.entry,
127
127
  props: options.props,
128
128
  info: staticInfo,
129
129
  staticDiagnostics,
130
- }));
130
+ });
131
131
  };
132
- await open();
132
+ sessions.push(await open());
133
133
  const sessionCount = Math.max(1, resolveSessionCount(sessions[0]));
134
- for (let index = sessions.length; index < sessionCount; index += 1) {
135
- await open();
134
+ if (sessionCount > 1) {
135
+ // Browser startup dominates short parallel renders, so open the
136
+ // remaining sessions together instead of paying for each in sequence.
137
+ const additional = await Promise.allSettled(Array.from({ length: sessionCount - 1 }, () => open()));
138
+ for (const result of additional) {
139
+ if (result.status === "fulfilled") {
140
+ sessions.push(result.value);
141
+ }
142
+ }
143
+ const failed = additional.find((result) => result.status === "rejected");
144
+ if (failed) {
145
+ throw failed.reason;
146
+ }
136
147
  }
137
148
  return await callback(sessions);
138
149
  }
@@ -149,14 +160,14 @@ async function withSessions(options, resolveSessionCount, callback) {
149
160
  }
150
161
  }
151
162
  finally {
152
- for (const session of sessions) {
163
+ await Promise.all(sessions.map(async (session) => {
153
164
  try {
154
165
  await session.close();
155
166
  }
156
167
  catch {
157
168
  // Preserve the command's original error.
158
169
  }
159
- }
170
+ }));
160
171
  try {
161
172
  await server.close();
162
173
  }