@hyperframes/engine 0.5.0-alpha.12 → 0.5.0-alpha.14
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/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/frameCapture.d.ts.map +1 -1
- package/dist/services/frameCapture.js +48 -3
- package/dist/services/frameCapture.js.map +1 -1
- package/dist/types.d.ts +16 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/config.test.ts +23 -0
- package/src/config.ts +15 -1
- package/src/index.ts +1 -0
- package/src/services/frameCapture.ts +70 -3
- package/src/types.ts +17 -6
package/dist/config.d.ts
CHANGED
|
@@ -40,6 +40,12 @@ export interface EngineConfig {
|
|
|
40
40
|
enableChunkedEncode: boolean;
|
|
41
41
|
chunkSizeFrames: number;
|
|
42
42
|
enableStreamingEncode: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Max composition duration eligible for streaming encode (seconds).
|
|
45
|
+
* Mirrors GSAP rendering's 4-minute streaming guard: production has seen
|
|
46
|
+
* ffmpeg's streaming pipe hit FFMPEG_STREAMING_TIMEOUT_MS on longer videos.
|
|
47
|
+
*/
|
|
48
|
+
streamingEncodeMaxDurationSeconds: number;
|
|
43
49
|
/** Timeout for FFmpeg frame encoding (ms). Default: 600_000 */
|
|
44
50
|
ffmpegEncodeTimeout: number;
|
|
45
51
|
/** Timeout for FFmpeg mux/faststart processes (ms). Default: 300_000 */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAE3B,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IAGpB,yDAAyD;IACzD,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,oBAAoB,EAAE,MAAM,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,UAAU,GAAG,UAAU,CAAC;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,eAAe,EAAE,OAAO,CAAC;IAGzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAE3B,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IAGpB,yDAAyD;IACzD,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,oBAAoB,EAAE,MAAM,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,UAAU,GAAG,UAAU,CAAC;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,eAAe,EAAE,OAAO,CAAC;IAGzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,iCAAiC,EAAE,MAAM,CAAC;IAG1C,+DAA+D;IAC/D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,sBAAsB,EAAE,MAAM,CAAC;IAG/B,kEAAkE;IAClE,GAAG,EAAE;QAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;KAAE,GAAG,KAAK,CAAC;IACxC,yEAAyE;IACzE,aAAa,EAAE,OAAO,CAAC;IAGvB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAG/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,kDAAkD;IAClD,aAAa,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qEAAqE;AACrE,eAAO,MAAM,cAAc,EAAE,YAuC5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CA2G7E"}
|
package/dist/config.js
CHANGED
|
@@ -23,7 +23,8 @@ export const DEFAULT_CONFIG = {
|
|
|
23
23
|
forceScreenshot: false,
|
|
24
24
|
enableChunkedEncode: false,
|
|
25
25
|
chunkSizeFrames: 360,
|
|
26
|
-
enableStreamingEncode:
|
|
26
|
+
enableStreamingEncode: true,
|
|
27
|
+
streamingEncodeMaxDurationSeconds: 240,
|
|
27
28
|
ffmpegEncodeTimeout: 600_000,
|
|
28
29
|
ffmpegProcessTimeout: 300_000,
|
|
29
30
|
ffmpegStreamingTimeout: 600_000,
|
|
@@ -81,6 +82,7 @@ export function resolveConfig(overrides) {
|
|
|
81
82
|
enableChunkedEncode: envBool("PRODUCER_ENABLE_CHUNKED_ENCODE", DEFAULT_CONFIG.enableChunkedEncode),
|
|
82
83
|
chunkSizeFrames: Math.max(120, envNum("PRODUCER_CHUNK_SIZE_FRAMES", DEFAULT_CONFIG.chunkSizeFrames)),
|
|
83
84
|
enableStreamingEncode: envBool("PRODUCER_ENABLE_STREAMING_ENCODE", DEFAULT_CONFIG.enableStreamingEncode),
|
|
85
|
+
streamingEncodeMaxDurationSeconds: Math.max(0, envNum("PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS", DEFAULT_CONFIG.streamingEncodeMaxDurationSeconds)),
|
|
84
86
|
ffmpegEncodeTimeout: envNum("FFMPEG_ENCODE_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegEncodeTimeout),
|
|
85
87
|
ffmpegProcessTimeout: envNum("FFMPEG_PROCESS_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegProcessTimeout),
|
|
86
88
|
ffmpegStreamingTimeout: envNum("FFMPEG_STREAMING_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegStreamingTimeout),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* getFrameAtTime, detectGpuEncoder) return a nullable value instead of throwing.
|
|
30
30
|
*
|
|
31
31
|
*/
|
|
32
|
-
export type { HfProtocol, HfMediaElement, HfTransitionMeta, CaptureOptions, CaptureResult, CaptureBufferResult, CapturePerfSummary, } from "./types.js";
|
|
32
|
+
export type { HfProtocol, HfMediaElement, HfTransitionMeta, CaptureOptions, CaptureVideoMetadataHint, CaptureResult, CaptureBufferResult, CapturePerfSummary, } from "./types.js";
|
|
33
33
|
export { resolveConfig, DEFAULT_CONFIG, type EngineConfig } from "./config.js";
|
|
34
34
|
export { acquireBrowser, releaseBrowser, resolveHeadlessShellPath, buildChromeArgs, ENABLE_BROWSER_POOL, type BuildChromeArgsOptions, type CaptureMode, type AcquiredBrowser, } from "./services/browserManager.js";
|
|
35
35
|
export { createCaptureSession, initializeSession, closeCaptureSession, captureFrame, captureFrameToBuffer, getCompositionDuration, getCapturePerfSummary, prepareCaptureSessionForReuse, type CaptureSession, type BeforeCaptureHook, } from "./services/frameCapture.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAcH,kFAAkF;AAClF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAE/E,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,mBAAmB,GAIpB,MAAM,8BAA8B,CAAC;AAEtC,mFAAmF;AACnF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,GAG9B,MAAM,4BAA4B,CAAC;AAEpC,mFAAmF;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAEzC,kFAAkF;AAClF,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAEjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GAKzB,MAAM,gCAAgC,CAAC;AAExC,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,GAOjB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGvF,kFAAkF;AAClF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,mCAAmC,CAAC;AAE3C,kFAAkF;AAClF,OAAO,EACL,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAElC,kFAAkF;AAClF,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GAIzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,SAAS,EAA+C,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAC;AAElF,iFAAiF;AACjF,OAAO,EAEL,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GAGrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GAKxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameCapture.d.ts","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAsC,MAAM,gBAAgB,CAAC;AAM7F,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"frameCapture.d.ts","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAsC,MAAM,gBAAgB,CAAC;AAM7F,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AAEvF,wGAAwG;AACxG,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC;IAIvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE,WAAW,CAAC;IAEzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAMD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,eAAe,GAAE,iBAAiB,GAAG,IAAW,EAChD,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,cAAc,CAAC,CAuGzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAM5F;AA2ED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2M9E;AA4ID,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhF;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,iBAAiB,GAAG,IAAI,GACxC,IAAI,CAeN;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMrF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CASjF"}
|
|
@@ -137,6 +137,45 @@ async function pollPageExpression(page, expression, timeoutMs, intervalMs = 100)
|
|
|
137
137
|
}
|
|
138
138
|
return Boolean(await page.evaluate(expression));
|
|
139
139
|
}
|
|
140
|
+
async function applyVideoMetadataHints(page, hints) {
|
|
141
|
+
if (!hints || hints.length === 0)
|
|
142
|
+
return;
|
|
143
|
+
await page.evaluate((metadataHints) => {
|
|
144
|
+
for (const hint of metadataHints) {
|
|
145
|
+
if (!hint.id ||
|
|
146
|
+
!Number.isFinite(hint.width) ||
|
|
147
|
+
!Number.isFinite(hint.height) ||
|
|
148
|
+
hint.width <= 0 ||
|
|
149
|
+
hint.height <= 0) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const video = document.getElementById(hint.id);
|
|
153
|
+
if (!video)
|
|
154
|
+
continue;
|
|
155
|
+
if (!video.hasAttribute("width"))
|
|
156
|
+
video.setAttribute("width", String(hint.width));
|
|
157
|
+
if (!video.hasAttribute("height"))
|
|
158
|
+
video.setAttribute("height", String(hint.height));
|
|
159
|
+
const computed = window.getComputedStyle(video);
|
|
160
|
+
if (!video.style.aspectRatio &&
|
|
161
|
+
(!computed.aspectRatio || computed.aspectRatio === "auto")) {
|
|
162
|
+
video.style.aspectRatio = `${hint.width} / ${hint.height}`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}, [...hints]);
|
|
166
|
+
}
|
|
167
|
+
async function waitForOptionalTailwindReady(page, timeoutMs) {
|
|
168
|
+
const hasTailwindReady = await page.evaluate(`(() => { const ready = window.__tailwindReady; return !!ready && typeof ready.then === "function"; })()`);
|
|
169
|
+
if (!hasTailwindReady)
|
|
170
|
+
return;
|
|
171
|
+
const ready = await Promise.race([
|
|
172
|
+
page.evaluate(`Promise.resolve(window.__tailwindReady).then(() => true, () => false)`),
|
|
173
|
+
new Promise((resolve) => setTimeout(() => resolve(false), timeoutMs)),
|
|
174
|
+
]);
|
|
175
|
+
if (!ready) {
|
|
176
|
+
throw new Error(`[FrameCapture] window.__tailwindReady not resolved after ${timeoutMs}ms. Tailwind browser runtime must finish before frame capture starts.`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
140
179
|
export async function initializeSession(session) {
|
|
141
180
|
const { page, serverUrl } = session;
|
|
142
181
|
// Forward browser console to host with [Browser] prefix
|
|
@@ -187,17 +226,20 @@ export async function initializeSession(session) {
|
|
|
187
226
|
if (!pageReady) {
|
|
188
227
|
throw new Error(`[FrameCapture] window.__hf not ready after ${pageReadyTimeout}ms. Page must expose window.__hf = { duration, seek }.`);
|
|
189
228
|
}
|
|
229
|
+
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
190
230
|
// Wait for all video elements to have loaded metadata (dimensions + duration)
|
|
191
231
|
// Without this, frame 0 captures videos at their 300x150 default size.
|
|
192
232
|
// skipReadinessVideoIds excludes natively-extracted videos (e.g. HDR HEVC
|
|
193
|
-
// sources) whose frames come from ffmpeg out-of-band
|
|
194
|
-
//
|
|
233
|
+
// sources) whose frames come from ffmpeg out-of-band. videoMetadataHints
|
|
234
|
+
// supply intrinsic dimensions for skipped videos whose layout depends on
|
|
235
|
+
// aspect ratio, while Chromium may still fail to decode/load metadata.
|
|
195
236
|
const skipIdsLiteral = JSON.stringify(session.options.skipReadinessVideoIds ?? []);
|
|
196
237
|
const videosReady = await pollPageExpression(page, `(() => { const skip = new Set(${skipIdsLiteral}); const vids = Array.from(document.querySelectorAll("video")).filter(v => !skip.has(v.id)); return vids.length === 0 || vids.every(v => v.readyState >= 1); })()`, pageReadyTimeout);
|
|
197
238
|
if (!videosReady) {
|
|
198
239
|
throw new Error(`[FrameCapture] video metadata not ready after ${pageReadyTimeout}ms. Video elements must load metadata before capture starts.`);
|
|
199
240
|
}
|
|
200
241
|
await page.evaluate(`document.fonts?.ready`);
|
|
242
|
+
await waitForOptionalTailwindReady(page, pageReadyTimeout);
|
|
201
243
|
// For PNG captures, force the page background fully transparent so the
|
|
202
244
|
// captured screenshots carry a real alpha channel. Must run AFTER
|
|
203
245
|
// navigation (Chrome resets the override on every goto) and AFTER the
|
|
@@ -261,9 +303,11 @@ export async function initializeSession(session) {
|
|
|
261
303
|
warmupRunning = false;
|
|
262
304
|
throw new Error(`[FrameCapture] window.__hf not ready after ${pageReadyTimeout}ms. Page must expose window.__hf = { duration, seek }.`);
|
|
263
305
|
}
|
|
306
|
+
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
264
307
|
// Wait for all video elements to have loaded metadata (dimensions + duration).
|
|
265
308
|
// Without this, frame 0 captures videos at their 300x150 default size.
|
|
266
|
-
// See screenshot-mode comment above for why skipReadinessVideoIds
|
|
309
|
+
// See screenshot-mode comment above for why skipReadinessVideoIds and
|
|
310
|
+
// videoMetadataHints are paired.
|
|
267
311
|
const beginframeSkipIdsLiteral = JSON.stringify(session.options.skipReadinessVideoIds ?? []);
|
|
268
312
|
const videoDeadline = Date.now() + (session.config?.playerReadyTimeout ?? DEFAULT_CONFIG.playerReadyTimeout);
|
|
269
313
|
while (Date.now() < videoDeadline) {
|
|
@@ -274,6 +318,7 @@ export async function initializeSession(session) {
|
|
|
274
318
|
}
|
|
275
319
|
// Font check (no rAF dependency — uses fonts.ready API directly)
|
|
276
320
|
await page.evaluate(`document.fonts?.ready`);
|
|
321
|
+
await waitForOptionalTailwindReady(page, pageReadyTimeout);
|
|
277
322
|
// Stop warmup
|
|
278
323
|
warmupRunning = false;
|
|
279
324
|
// Set base frame time ticks past warmup range
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameCapture.js","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frameCapture.js","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,wBAAwB,GAEzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAC;AA6CjE,qFAAqF;AACrF,2FAA2F;AAC3F,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAiB,EACjB,SAAiB,EACjB,OAAuB,EACvB,kBAA4C,IAAI,EAChD,MAA8B;IAE9B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtE,sFAAsF;IACtF,qEAAqE;IACrE,qEAAqE;IACrE,+EAA+E;IAC/E,uEAAuE;IACvE,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,cAAc,CAAC,eAAe,CAAC;IAClF,MAAM,OAAO,GACX,aAAa,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7E,MAAM,UAAU,GAAG,eAAe,CAChC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EACtE,MAAM,CACP,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,uDAAuD;IACvD,EAAE;IACF,4EAA4E;IAC5E,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,qEAAqE;IACrE,6DAA6D;IAC7D,+DAA+D;IAC/D,gEAAgE;IAChE,EAAE;IACF,oEAAoE;IACpE,+DAA+D;IAC/D,yEAAyE;IACzE,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,wEAAwE;IACxE,qDAAqD;IACrD,EAAE;IACF,wEAAwE;IACxE,kDAAkD;IAClD,0EAA0E;IAC1E,uEAAuE;IACvE,+DAA+D;IAC/D,wEAAwE;IACxE,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE;QACpC,MAAM,CAAC,GAAG,MAAgE,CAAC;QAC3E,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACnC,CAAC,CAAC,MAAM,GAAG,CAAI,EAAK,EAAE,KAAa,EAAK,EAAE,CAAC,EAAE,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,EAAE,qBAAqB,CAAC;IACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CACzC,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAChD,EAAE,CACH,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,KAAK,aAAa,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CACb,mDAAmD,aAAa,WAAW,mBAAmB,QAAQ,cAAc,EAAE,CACvH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAa;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,CAAC;KAClD,CAAC;IACF,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEjC,6EAA6E;IAC7E,+DAA+D;IAC/D,kEAAkE;IAClE,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAE5E,OAAO;QACL,OAAO;QACP,IAAI;QACJ,OAAO;QACP,SAAS;QACT,SAAS;QACT,eAAe;QACf,aAAa,EAAE,KAAK;QACpB,oBAAoB,EAAE,EAAE;QACxB,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;SACX;QACD,WAAW;QACX,mBAAmB,EAAE,CAAC;QACtB,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;QACrD,wBAAwB,EAAE,CAAC;QAC3B,uBAAuB,EAAE,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,WAAmB;IACjF,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,4DAA4D,CAAC,IAAI,CACtE,GAAG,WAAW,IAAI,IAAI,EAAE,CACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAU,EACV,UAAkB,EAClB,SAAiB,EACjB,aAAqB,GAAG;IAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,IAAU,EACV,KAAsD;IAEtD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEzC,MAAM,IAAI,CAAC,QAAQ,CACjB,CAAC,aAAyC,EAAE,EAAE;QAC5C,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IACE,CAAC,IAAI,CAAC,EAAE;gBACR,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7B,IAAI,CAAC,KAAK,IAAI,CAAC;gBACf,IAAI,CAAC,MAAM,IAAI,CAAC,EAChB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAA4B,CAAC;YAC1E,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;gBAAE,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAChD,IACE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW;gBACxB,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,EAC1D,CAAC;gBACD,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,GAAG,KAAK,CAAC,CACX,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,IAAU,EAAE,SAAiB;IACvE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC1C,yGAAyG,CAC1G,CAAC;IACF,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAE9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,CACX,uEAAuE,CACpD;QACrB,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;KAC/E,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,4DAA4D,SAAS,uEAAuE,CAC7I,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAuB;IAC7D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEpC,wDAAwD;IACxD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAmB,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAErE,wEAAwE;QACxE,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,mBAAmB,GACvB,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC;QAErF,MAAM,MAAM,GAAG,mBAAmB;YAChC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,IAAI,KAAK,OAAO;gBAChB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,IAAI,KAAK,MAAM;oBACf,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,WAAW,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;YACtE,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,uBAAuB,OAAO,EAAE,CAAC;QAE9C,yFAAyF;QACzF,MAAM,WAAW,GACf,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;YACtE,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,GAAG,GAAG,GAAG,SAAS,aAAa,CAAC;IACtC,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;QACzC,2DAA2D;QAC3D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAExE,MAAM,gBAAgB,GACpB,OAAO,CAAC,MAAM,EAAE,kBAAkB,IAAI,cAAc,CAAC,kBAAkB,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,kBAAkB,CACxC,IAAI,EACJ,uFAAuF,EACvF,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,8CAA8C,gBAAgB,wDAAwD,CACvH,CAAC;QACJ,CAAC;QAED,MAAM,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAExE,8EAA8E;QAC9E,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,IAAI,EACJ,iCAAiC,cAAc,mKAAmK,EAClN,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,iDAAiD,gBAAgB,8DAA8D,CAChI,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC7C,MAAM,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAE3D,uEAAuE;QACvE,kEAAkE;QAClE,sEAAsE;QACtE,uEAAuE;QACvE,+DAA+D;QAC/D,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,SAAS;IACtC,IAAI,YAAY,GAA+C,IAAI,CAAC;IAEpE,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QAED,OAAO,aAAa,EAAE,CAAC;YACrB,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,YAAY,CAAC,IAAI,CAAC,iCAAiC,EAAE;wBACzD,cAAc,EAAE,eAAe;wBAC/B,QAAQ,EAAE,gBAAgB;wBAC1B,gBAAgB,EAAE,IAAI;qBACvB,CAAC,CAAC;oBACH,eAAe,IAAI,gBAAgB,CAAC;oBACpC,WAAW,EAAE,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IACF,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE7B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAExE,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,kBAAkB,IAAI,cAAc,CAAC,kBAAkB,CAAC;IACjG,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;IACnD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,uFAAuF,CACxF,CAAC;QACF,IAAI,KAAK;YAAE,MAAM;QACjB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CACnC,uFAAuF,CACxF,CAAC;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,aAAa,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,8CAA8C,gBAAgB,wDAAwD,CACvH,CAAC;IACJ,CAAC;IAED,MAAM,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE,+EAA+E;IAC/E,uEAAuE;IACvE,sEAAsE;IACtE,iCAAiC;IACjC,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC7F,MAAM,aAAa,GACjB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CACrC,iCAAiC,wBAAwB,mKAAmK,CAC7N,CAAC;QACF,IAAI,WAAW;YAAE,MAAM;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,iEAAiE;IACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAC7C,MAAM,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE3D,cAAc;IACd,aAAa,GAAG,KAAK,CAAC;IAEtB,8CAA8C;IAC9C,OAAO,CAAC,mBAAmB,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAEhF,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,mCAAmC;IACnC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,OAAuB,EACvB,UAAkB,EAClB,IAAY,EACZ,KAAY;IAEZ,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,UAAU,EAAE,CAAC,CAAC;QAC/D,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1C,aAAa,CAAC,GAAG,IAAI,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,aAAa,CACX,GAAG,IAAI,OAAO,EACd,IAAI,CAAC,SAAS,CACZ;YACE,UAAU;YACV,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;SAC5D,EACD,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;QACF,OAAO,GAAG,IAAI,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAuB,EACvB,UAAkB,EAClB,IAAY;IAMZ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAElC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAS,EAAE,EAAE;QAChC,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAEtC,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;IAExD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAC7B,OAAuB,EACvB,UAAkB,EAClB,IAAY;IAEZ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,sBAAsB,CAC7E,OAAO,EACP,UAAU,EACV,IAAI,CACL,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,gBAAwB,CAAC;QAE7B,IAAI,OAAO,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;YACzC,MAAM,cAAc,GAClB,OAAO,CAAC,mBAAmB,GAAG,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,IAAI,EACJ,OAAO,EACP,cAAc,EACd,OAAO,CAAC,oBAAoB,CAC7B,CAAC;YACF,IAAI,MAAM,CAAC,SAAS;gBAAE,OAAO,CAAC,wBAAwB,EAAE,CAAC;;gBACpD,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACvC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE7C,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC;QACrC,OAAO,CAAC,WAAW,CAAC,eAAe,IAAI,eAAe,CAAC;QACvD,OAAO,CAAC,WAAW,CAAC,YAAY,IAAI,YAAY,CAAC;QACjD,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,aAAa,CAAC;QAE7C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;IACpE,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,4BAA4B,CAChC,OAAO,EACP,UAAU,EACV,IAAI,EACJ,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAC/E,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAuB,EACvB,UAAkB,EAClB,IAAY;IAEZ,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,gBAAgB,CACrE,OAAO,EACP,UAAU,EACV,IAAI,CACL,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,SAAS,GAAG,SAAS,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7C,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,UAAkB,EAClB,IAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAEpF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAuB;IAC/D,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,EAAE;IACF,yEAAyE;IACzE,qEAAqE;IACrE,0EAA0E;IAC1E,wEAAwE;IACxE,mEAAmE;IACnE,EAAE;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,0DAA0D;IAC1D,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAuB,EACvB,SAAiB,EACjB,eAAyC;IAEzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;IAC1C,OAAO,CAAC,WAAW,GAAG;QACpB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;KACX,CAAC;IACF,OAAO,CAAC,wBAAwB,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,uBAAuB,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAuB;IAClE,IAAI,CAAC,OAAO,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAEtF,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QAChC,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;QAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5D,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1D,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,GAAG,MAAM,CAAC;QAC5E,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC;KACvE,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -77,19 +77,29 @@ export interface CaptureOptions {
|
|
|
77
77
|
format?: "jpeg" | "png";
|
|
78
78
|
quality?: number;
|
|
79
79
|
deviceScaleFactor?: number;
|
|
80
|
+
/**
|
|
81
|
+
* FFmpeg-probed intrinsic dimensions for videos whose frames are injected
|
|
82
|
+
* out-of-band. Applied before the readiness wait so layout that depends on
|
|
83
|
+
* video aspect ratio (e.g. `height:auto`) stays stable even if Chromium never
|
|
84
|
+
* loads native metadata.
|
|
85
|
+
*/
|
|
86
|
+
videoMetadataHints?: readonly CaptureVideoMetadataHint[];
|
|
80
87
|
/**
|
|
81
88
|
* Video element IDs to exclude from the in-page readiness check that waits
|
|
82
89
|
* for `video.readyState >= 1` before capture starts.
|
|
83
90
|
*
|
|
84
|
-
* Use for videos whose frames are supplied out-of-band
|
|
85
|
-
* frame
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* decode (HEVC on Linux `headless-shell`) cause a fatal timeout even
|
|
89
|
-
* though we never asked the browser to play the video.
|
|
91
|
+
* Use for videos whose frames are supplied out-of-band, including standard
|
|
92
|
+
* FFmpeg frame injection and native HDR extraction. Pair with
|
|
93
|
+
* `videoMetadataHints` for any skipped video whose CSS layout may depend on
|
|
94
|
+
* intrinsic media dimensions.
|
|
90
95
|
*/
|
|
91
96
|
skipReadinessVideoIds?: readonly string[];
|
|
92
97
|
}
|
|
98
|
+
export interface CaptureVideoMetadataHint {
|
|
99
|
+
id: string;
|
|
100
|
+
width: number;
|
|
101
|
+
height: number;
|
|
102
|
+
}
|
|
93
103
|
export interface CaptureResult {
|
|
94
104
|
frameIndex: number;
|
|
95
105
|
time: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/engine",
|
|
3
|
-
"version": "0.5.0-alpha.
|
|
3
|
+
"version": "0.5.0-alpha.14",
|
|
4
4
|
"description": "Seekable web page to video rendering engine (Puppeteer + FFmpeg)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"linkedom": "^0.18.12",
|
|
20
20
|
"puppeteer": "^24.0.0",
|
|
21
21
|
"puppeteer-core": "^24.39.1",
|
|
22
|
-
"@hyperframes/core": "^0.5.0-alpha.
|
|
22
|
+
"@hyperframes/core": "^0.5.0-alpha.14"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/node": "^22.10.1",
|
package/src/config.test.ts
CHANGED
|
@@ -30,6 +30,8 @@ describe("resolveConfig", () => {
|
|
|
30
30
|
expect(config.format).toBe("jpeg");
|
|
31
31
|
expect(config.jpegQuality).toBe(80);
|
|
32
32
|
expect(config.browserGpuMode).toBe("software");
|
|
33
|
+
expect(config.enableStreamingEncode).toBe(true);
|
|
34
|
+
expect(config.streamingEncodeMaxDurationSeconds).toBe(240);
|
|
33
35
|
expect(config.audioGain).toBe(1);
|
|
34
36
|
expect(config.debug).toBe(false);
|
|
35
37
|
});
|
|
@@ -60,6 +62,27 @@ describe("resolveConfig", () => {
|
|
|
60
62
|
expect(config.enableBrowserPool).toBe(true);
|
|
61
63
|
});
|
|
62
64
|
|
|
65
|
+
it("lets env vars opt out of default streaming encode", () => {
|
|
66
|
+
setEnv("PRODUCER_ENABLE_STREAMING_ENCODE", "false");
|
|
67
|
+
|
|
68
|
+
const config = resolveConfig();
|
|
69
|
+
expect(config.enableStreamingEncode).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it("reads the streaming encode duration cutoff from env", () => {
|
|
73
|
+
setEnv("PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS", "120");
|
|
74
|
+
|
|
75
|
+
const config = resolveConfig();
|
|
76
|
+
expect(config.streamingEncodeMaxDurationSeconds).toBe(120);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("clamps negative streaming encode duration cutoff env values to zero", () => {
|
|
80
|
+
setEnv("PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS", "-1");
|
|
81
|
+
|
|
82
|
+
const config = resolveConfig();
|
|
83
|
+
expect(config.streamingEncodeMaxDurationSeconds).toBe(0);
|
|
84
|
+
});
|
|
85
|
+
|
|
63
86
|
it("treats non-'true' boolean env vars as false", () => {
|
|
64
87
|
setEnv("PRODUCER_DISABLE_GPU", "yes");
|
|
65
88
|
|
package/src/config.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface EngineConfig {
|
|
|
48
48
|
enableChunkedEncode: boolean;
|
|
49
49
|
chunkSizeFrames: number;
|
|
50
50
|
enableStreamingEncode: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Max composition duration eligible for streaming encode (seconds).
|
|
53
|
+
* Mirrors GSAP rendering's 4-minute streaming guard: production has seen
|
|
54
|
+
* ffmpeg's streaming pipe hit FFMPEG_STREAMING_TIMEOUT_MS on longer videos.
|
|
55
|
+
*/
|
|
56
|
+
streamingEncodeMaxDurationSeconds: number;
|
|
51
57
|
|
|
52
58
|
// ── FFmpeg timeouts ──────────────────────────────────────────────────
|
|
53
59
|
/** Timeout for FFmpeg frame encoding (ms). Default: 600_000 */
|
|
@@ -126,7 +132,8 @@ export const DEFAULT_CONFIG: EngineConfig = {
|
|
|
126
132
|
|
|
127
133
|
enableChunkedEncode: false,
|
|
128
134
|
chunkSizeFrames: 360,
|
|
129
|
-
enableStreamingEncode:
|
|
135
|
+
enableStreamingEncode: true,
|
|
136
|
+
streamingEncodeMaxDurationSeconds: 240,
|
|
130
137
|
|
|
131
138
|
ffmpegEncodeTimeout: 600_000,
|
|
132
139
|
ffmpegProcessTimeout: 300_000,
|
|
@@ -207,6 +214,13 @@ export function resolveConfig(overrides?: Partial<EngineConfig>): EngineConfig {
|
|
|
207
214
|
"PRODUCER_ENABLE_STREAMING_ENCODE",
|
|
208
215
|
DEFAULT_CONFIG.enableStreamingEncode,
|
|
209
216
|
),
|
|
217
|
+
streamingEncodeMaxDurationSeconds: Math.max(
|
|
218
|
+
0,
|
|
219
|
+
envNum(
|
|
220
|
+
"PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS",
|
|
221
|
+
DEFAULT_CONFIG.streamingEncodeMaxDurationSeconds,
|
|
222
|
+
),
|
|
223
|
+
),
|
|
210
224
|
|
|
211
225
|
ffmpegEncodeTimeout: envNum("FFMPEG_ENCODE_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegEncodeTimeout),
|
|
212
226
|
ffmpegProcessTimeout: envNum("FFMPEG_PROCESS_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegProcessTimeout),
|
package/src/index.ts
CHANGED
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
import { DEFAULT_CONFIG, type EngineConfig } from "../config.js";
|
|
30
30
|
import type {
|
|
31
31
|
CaptureOptions,
|
|
32
|
+
CaptureVideoMetadataHint,
|
|
32
33
|
CaptureResult,
|
|
33
34
|
CaptureBufferResult,
|
|
34
35
|
CapturePerfSummary,
|
|
@@ -221,6 +222,64 @@ async function pollPageExpression(
|
|
|
221
222
|
return Boolean(await page.evaluate(expression));
|
|
222
223
|
}
|
|
223
224
|
|
|
225
|
+
async function applyVideoMetadataHints(
|
|
226
|
+
page: Page,
|
|
227
|
+
hints: readonly CaptureVideoMetadataHint[] | undefined,
|
|
228
|
+
): Promise<void> {
|
|
229
|
+
if (!hints || hints.length === 0) return;
|
|
230
|
+
|
|
231
|
+
await page.evaluate(
|
|
232
|
+
(metadataHints: CaptureVideoMetadataHint[]) => {
|
|
233
|
+
for (const hint of metadataHints) {
|
|
234
|
+
if (
|
|
235
|
+
!hint.id ||
|
|
236
|
+
!Number.isFinite(hint.width) ||
|
|
237
|
+
!Number.isFinite(hint.height) ||
|
|
238
|
+
hint.width <= 0 ||
|
|
239
|
+
hint.height <= 0
|
|
240
|
+
) {
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const video = document.getElementById(hint.id) as HTMLVideoElement | null;
|
|
245
|
+
if (!video) continue;
|
|
246
|
+
|
|
247
|
+
if (!video.hasAttribute("width")) video.setAttribute("width", String(hint.width));
|
|
248
|
+
if (!video.hasAttribute("height")) video.setAttribute("height", String(hint.height));
|
|
249
|
+
|
|
250
|
+
const computed = window.getComputedStyle(video);
|
|
251
|
+
if (
|
|
252
|
+
!video.style.aspectRatio &&
|
|
253
|
+
(!computed.aspectRatio || computed.aspectRatio === "auto")
|
|
254
|
+
) {
|
|
255
|
+
video.style.aspectRatio = `${hint.width} / ${hint.height}`;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
[...hints],
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
async function waitForOptionalTailwindReady(page: Page, timeoutMs: number): Promise<void> {
|
|
264
|
+
const hasTailwindReady = await page.evaluate(
|
|
265
|
+
`(() => { const ready = window.__tailwindReady; return !!ready && typeof ready.then === "function"; })()`,
|
|
266
|
+
);
|
|
267
|
+
if (!hasTailwindReady) return;
|
|
268
|
+
|
|
269
|
+
const ready = await Promise.race([
|
|
270
|
+
page.evaluate(
|
|
271
|
+
`Promise.resolve(window.__tailwindReady).then(() => true, () => false)`,
|
|
272
|
+
) as Promise<boolean>,
|
|
273
|
+
new Promise<boolean>((resolve) => setTimeout(() => resolve(false), timeoutMs)),
|
|
274
|
+
]);
|
|
275
|
+
|
|
276
|
+
if (!ready) {
|
|
277
|
+
throw new Error(
|
|
278
|
+
`[FrameCapture] window.__tailwindReady not resolved after ${timeoutMs}ms. Tailwind browser runtime must finish before frame capture starts.`,
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
224
283
|
export async function initializeSession(session: CaptureSession): Promise<void> {
|
|
225
284
|
const { page, serverUrl } = session;
|
|
226
285
|
|
|
@@ -290,11 +349,14 @@ export async function initializeSession(session: CaptureSession): Promise<void>
|
|
|
290
349
|
);
|
|
291
350
|
}
|
|
292
351
|
|
|
352
|
+
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
353
|
+
|
|
293
354
|
// Wait for all video elements to have loaded metadata (dimensions + duration)
|
|
294
355
|
// Without this, frame 0 captures videos at their 300x150 default size.
|
|
295
356
|
// skipReadinessVideoIds excludes natively-extracted videos (e.g. HDR HEVC
|
|
296
|
-
// sources) whose frames come from ffmpeg out-of-band
|
|
297
|
-
//
|
|
357
|
+
// sources) whose frames come from ffmpeg out-of-band. videoMetadataHints
|
|
358
|
+
// supply intrinsic dimensions for skipped videos whose layout depends on
|
|
359
|
+
// aspect ratio, while Chromium may still fail to decode/load metadata.
|
|
298
360
|
const skipIdsLiteral = JSON.stringify(session.options.skipReadinessVideoIds ?? []);
|
|
299
361
|
const videosReady = await pollPageExpression(
|
|
300
362
|
page,
|
|
@@ -308,6 +370,7 @@ export async function initializeSession(session: CaptureSession): Promise<void>
|
|
|
308
370
|
}
|
|
309
371
|
|
|
310
372
|
await page.evaluate(`document.fonts?.ready`);
|
|
373
|
+
await waitForOptionalTailwindReady(page, pageReadyTimeout);
|
|
311
374
|
|
|
312
375
|
// For PNG captures, force the page background fully transparent so the
|
|
313
376
|
// captured screenshots carry a real alpha channel. Must run AFTER
|
|
@@ -382,9 +445,12 @@ export async function initializeSession(session: CaptureSession): Promise<void>
|
|
|
382
445
|
);
|
|
383
446
|
}
|
|
384
447
|
|
|
448
|
+
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
449
|
+
|
|
385
450
|
// Wait for all video elements to have loaded metadata (dimensions + duration).
|
|
386
451
|
// Without this, frame 0 captures videos at their 300x150 default size.
|
|
387
|
-
// See screenshot-mode comment above for why skipReadinessVideoIds
|
|
452
|
+
// See screenshot-mode comment above for why skipReadinessVideoIds and
|
|
453
|
+
// videoMetadataHints are paired.
|
|
388
454
|
const beginframeSkipIdsLiteral = JSON.stringify(session.options.skipReadinessVideoIds ?? []);
|
|
389
455
|
const videoDeadline =
|
|
390
456
|
Date.now() + (session.config?.playerReadyTimeout ?? DEFAULT_CONFIG.playerReadyTimeout);
|
|
@@ -398,6 +464,7 @@ export async function initializeSession(session: CaptureSession): Promise<void>
|
|
|
398
464
|
|
|
399
465
|
// Font check (no rAF dependency — uses fonts.ready API directly)
|
|
400
466
|
await page.evaluate(`document.fonts?.ready`);
|
|
467
|
+
await waitForOptionalTailwindReady(page, pageReadyTimeout);
|
|
401
468
|
|
|
402
469
|
// Stop warmup
|
|
403
470
|
warmupRunning = false;
|
package/src/types.ts
CHANGED
|
@@ -85,20 +85,31 @@ export interface CaptureOptions {
|
|
|
85
85
|
format?: "jpeg" | "png";
|
|
86
86
|
quality?: number;
|
|
87
87
|
deviceScaleFactor?: number;
|
|
88
|
+
/**
|
|
89
|
+
* FFmpeg-probed intrinsic dimensions for videos whose frames are injected
|
|
90
|
+
* out-of-band. Applied before the readiness wait so layout that depends on
|
|
91
|
+
* video aspect ratio (e.g. `height:auto`) stays stable even if Chromium never
|
|
92
|
+
* loads native metadata.
|
|
93
|
+
*/
|
|
94
|
+
videoMetadataHints?: readonly CaptureVideoMetadataHint[];
|
|
88
95
|
/**
|
|
89
96
|
* Video element IDs to exclude from the in-page readiness check that waits
|
|
90
97
|
* for `video.readyState >= 1` before capture starts.
|
|
91
98
|
*
|
|
92
|
-
* Use for videos whose frames are supplied out-of-band
|
|
93
|
-
* frame
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* decode (HEVC on Linux `headless-shell`) cause a fatal timeout even
|
|
97
|
-
* though we never asked the browser to play the video.
|
|
99
|
+
* Use for videos whose frames are supplied out-of-band, including standard
|
|
100
|
+
* FFmpeg frame injection and native HDR extraction. Pair with
|
|
101
|
+
* `videoMetadataHints` for any skipped video whose CSS layout may depend on
|
|
102
|
+
* intrinsic media dimensions.
|
|
98
103
|
*/
|
|
99
104
|
skipReadinessVideoIds?: readonly string[];
|
|
100
105
|
}
|
|
101
106
|
|
|
107
|
+
export interface CaptureVideoMetadataHint {
|
|
108
|
+
id: string;
|
|
109
|
+
width: number;
|
|
110
|
+
height: number;
|
|
111
|
+
}
|
|
112
|
+
|
|
102
113
|
export interface CaptureResult {
|
|
103
114
|
frameIndex: number;
|
|
104
115
|
time: number;
|