@hyperframes/engine 0.8.141 → 0.8.143
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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/services/extractedFrameIndex.d.ts +1 -1
- package/dist/services/extractedFrameIndex.d.ts.map +1 -1
- package/dist/services/extractedFrameIndex.js +3 -1
- package/dist/services/extractedFrameIndex.js.map +1 -1
- package/dist/services/frameCapture.d.ts.map +1 -1
- package/dist/services/frameCapture.js +2 -4
- package/dist/services/frameCapture.js.map +1 -1
- package/dist/services/streamingEncoder.js +4 -4
- package/dist/services/streamingEncoder.js.map +1 -1
- package/dist/services/videoFrameExtractor.d.ts +18 -0
- package/dist/services/videoFrameExtractor.d.ts.map +1 -1
- package/dist/services/videoFrameExtractor.js +159 -6
- package/dist/services/videoFrameExtractor.js.map +1 -1
- package/dist/utils/alphaBlit.js +4 -4
- package/dist/utils/alphaBlit.js.map +1 -1
- package/dist/utils/ffprobe.d.ts.map +1 -1
- package/dist/utils/ffprobe.js +27 -21
- package/dist/utils/ffprobe.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingEncoder.js","sourceRoot":"","sources":["../../src/services/streamingEncoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"streamingEncoder.js","sourceRoot":"","sources":["../../src/services/streamingEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ export interface ExtractedFrames {
|
|
|
31
31
|
totalFrames: number;
|
|
32
32
|
metadata: VideoMetadata;
|
|
33
33
|
framePaths: Map<number, string>;
|
|
34
|
+
deferredRange?: DeferredFrameRange;
|
|
34
35
|
/**
|
|
35
36
|
* True when the extractor owns `outputDir` and cleanup should rm it when
|
|
36
37
|
* the render ends. Cache hits set this to false so the shared entry isn't
|
|
@@ -59,6 +60,16 @@ export declare function isVideoFrameFormat(value: unknown): value is VideoFrameF
|
|
|
59
60
|
* rejected because the two paths disagree by one frame.
|
|
60
61
|
*/
|
|
61
62
|
export declare function extractionFrameCountForDuration(durationSeconds: number, fps: FpsInput, isVFR: boolean): number;
|
|
63
|
+
export interface FrameRange {
|
|
64
|
+
firstFrame: number;
|
|
65
|
+
frames: number;
|
|
66
|
+
}
|
|
67
|
+
/** The window a deferred extraction samples; frame k is the source frame on screen at `startTime + k / fps`. */
|
|
68
|
+
export interface DeferredFrameRange {
|
|
69
|
+
startTime: number;
|
|
70
|
+
durationSeconds: number;
|
|
71
|
+
format: "jpg" | "png";
|
|
72
|
+
}
|
|
62
73
|
export interface ExtractionOptions {
|
|
63
74
|
/** Exact configured rate. Rational rates are passed to FFmpeg verbatim. */
|
|
64
75
|
fps: FpsInput;
|
|
@@ -87,6 +98,13 @@ export interface ExtractionOptions {
|
|
|
87
98
|
* candidate enforce lane may opt into typed aggregation.
|
|
88
99
|
*/
|
|
89
100
|
collectProbeFailures?: boolean;
|
|
101
|
+
/** Extract only these runs of output frames, named as a full extraction names them. CFR only. */
|
|
102
|
+
frameRanges?: readonly FrameRange[];
|
|
103
|
+
/**
|
|
104
|
+
* Leave CFR windows longer than a second unextracted, returning `deferredRange` and an exact
|
|
105
|
+
* `totalFrames` so another process can extract just the frames it needs with `frameRanges`.
|
|
106
|
+
*/
|
|
107
|
+
deferRangeExtraction?: boolean;
|
|
90
108
|
}
|
|
91
109
|
export declare const EXTRACT_CACHE_MIN_AGE_MS: number;
|
|
92
110
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoFrameExtractor.d.ts","sourceRoot":"","sources":["../../src/services/videoFrameExtractor.ts"],"names":[],"mappings":"AACA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"videoFrameExtractor.d.ts","sourceRoot":"","sources":["../../src/services/videoFrameExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { audioGroupsById, isMemberGroupHidden, isSelfOrAncestorHidden } from "./mediaHidden.js";
|
|
9
9
|
import { copyFileSync, existsSync, linkSync, mkdirSync, rmSync } from "fs";
|
|
10
10
|
import { join } from "path";
|
|
11
|
+
import { cpus } from "os";
|
|
11
12
|
import { parseHTML } from "linkedom";
|
|
12
13
|
import { resolveProjectRelativeSrc } from "@hyperframes/parsers/asset-resolution";
|
|
13
14
|
import { MEDIA_RENDER_ID_ATTR, isAudibleVideoElement, fpsToFfmpegArg, fpsToNumber, MEDIA_DURATION_CLAMP_EPSILON_SECONDS, normalizeRateSpec, readElementRateSpec, shiftRateLane, sourceTimeAt, timeAtSourceTime, exportClipWindow, hasClipStarted, isInClipWindow, parseStrictFiniteTimingNumber, readMediaStart, toFps, firstFrameColourArgs, hdrToSdrToneMapFilter, parseFirstFrameColour, } from "@hyperframes/core";
|
|
@@ -479,6 +480,80 @@ function restoreSourceColourFilter(metadata) {
|
|
|
479
480
|
? [`setparams=${tags.map(([key, value]) => `${key}=${value}`).join(":")}`]
|
|
480
481
|
: [];
|
|
481
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* Longest stretch of output one ffmpeg process extracts. `ffmpegProcessTimeout` bounds a
|
|
485
|
+
* single process, so one process over a long clip timed out however much time the render
|
|
486
|
+
* had left. Longer ranges split into segments that run side by side. Segments sample the
|
|
487
|
+
* same absolute times as a single pass, so their frames are byte-identical to it.
|
|
488
|
+
*/
|
|
489
|
+
const EXTRACTION_SEGMENT_SECONDS = 120;
|
|
490
|
+
/** Split runs so no single ffmpeg process extracts more than `segmentFrames` frames. */
|
|
491
|
+
function splitFrameRanges(ranges, segmentFrames) {
|
|
492
|
+
const segments = [];
|
|
493
|
+
for (const range of ranges) {
|
|
494
|
+
for (let offset = 0; offset < range.frames; offset += segmentFrames) {
|
|
495
|
+
segments.push({
|
|
496
|
+
firstFrame: range.firstFrame + offset,
|
|
497
|
+
frames: Math.min(segmentFrames, range.frames - offset),
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
return segments;
|
|
502
|
+
}
|
|
503
|
+
async function runSegmentedExtraction(job) {
|
|
504
|
+
const { decodeArgs, filterAndEncodeArgs, videoPath, startTime, fps, segments } = job;
|
|
505
|
+
const segmentCount = segments.length;
|
|
506
|
+
// One failed segment fails the range, so stop the others instead of finishing them.
|
|
507
|
+
const failed = new AbortController();
|
|
508
|
+
const signal = job.runOptions.signal
|
|
509
|
+
? AbortSignal.any([job.runOptions.signal, failed.signal])
|
|
510
|
+
: failed.signal;
|
|
511
|
+
const results = [];
|
|
512
|
+
let next = 0;
|
|
513
|
+
const worker = async () => {
|
|
514
|
+
while (next < segmentCount && !signal.aborted) {
|
|
515
|
+
const index = next++;
|
|
516
|
+
const { firstFrame, frames } = segments[index];
|
|
517
|
+
const result = await runFfmpeg([
|
|
518
|
+
...decodeArgs,
|
|
519
|
+
"-noaccurate_seek",
|
|
520
|
+
"-ss",
|
|
521
|
+
String(startTime + firstFrame / fps),
|
|
522
|
+
"-i",
|
|
523
|
+
videoPath,
|
|
524
|
+
// Read one frame past the segment and keep exactly its own frames.
|
|
525
|
+
"-t",
|
|
526
|
+
String((frames + 1) / fps),
|
|
527
|
+
"-frames:v",
|
|
528
|
+
String(frames),
|
|
529
|
+
"-start_number",
|
|
530
|
+
String(firstFrame + 1),
|
|
531
|
+
...filterAndEncodeArgs,
|
|
532
|
+
], { ...job.runOptions, signal });
|
|
533
|
+
results[index] = result;
|
|
534
|
+
if (!result.success)
|
|
535
|
+
failed.abort();
|
|
536
|
+
}
|
|
537
|
+
};
|
|
538
|
+
const workers = Math.min(segmentCount, Math.max(1, Math.floor(cpus().length / 2)));
|
|
539
|
+
await Promise.all(Array.from({ length: workers }, worker));
|
|
540
|
+
const ran = results.filter(Boolean);
|
|
541
|
+
// Report the segment that failed, not the ones stopped because of it.
|
|
542
|
+
const failure = ran.find((r) => !r.success && r.terminationReason !== "abort") ?? ran.find((r) => !r.success);
|
|
543
|
+
if (failure)
|
|
544
|
+
return failure;
|
|
545
|
+
// A cancel between segments leaves later ones unrun; their frames are missing, not done.
|
|
546
|
+
if (ran.length < segmentCount) {
|
|
547
|
+
return {
|
|
548
|
+
success: false,
|
|
549
|
+
exitCode: null,
|
|
550
|
+
stderr: "",
|
|
551
|
+
durationMs: 0,
|
|
552
|
+
terminationReason: "abort",
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
return ran[ran.length - 1];
|
|
556
|
+
}
|
|
482
557
|
export async function extractVideoFramesRange(videoPath, videoId, startTime, duration, options, signal, config,
|
|
483
558
|
/** Frames go straight here, with no per-videoId subdir (the cache layer's keyed entry). */
|
|
484
559
|
outputDirOverride) {
|
|
@@ -515,6 +590,9 @@ outputDirOverride) {
|
|
|
515
590
|
const toneMappedToSdr = options.toneMapHdrToSdr === true && isHdr && (await toneMapsWithZscale());
|
|
516
591
|
const decodeWithVideoToolbox = isHdr && isMacOS && !toneMappedToSdr;
|
|
517
592
|
const sampleCfrAtOutputFps = !options.finalFrameOnly && !metadata.isVFR;
|
|
593
|
+
if (options.frameRanges && !sampleCfrAtOutputFps) {
|
|
594
|
+
throw new Error("frameRanges extraction needs a constant-frame-rate source");
|
|
595
|
+
}
|
|
518
596
|
const args = [];
|
|
519
597
|
if (decodeWithVideoToolbox) {
|
|
520
598
|
args.push("-hwaccel", "videotoolbox");
|
|
@@ -531,6 +609,7 @@ outputDirOverride) {
|
|
|
531
609
|
if (codecMayHaveAlpha(metadata.videoCodec)) {
|
|
532
610
|
args.push("-c:v", decoderForCodec(metadata.videoCodec));
|
|
533
611
|
}
|
|
612
|
+
const decodeArgs = [...args];
|
|
534
613
|
if (options.finalFrameOnly) {
|
|
535
614
|
// Output-side seek decodes from the start before selecting the final
|
|
536
615
|
// sample. This is intentionally reserved for the one-frame path: input
|
|
@@ -601,9 +680,21 @@ outputDirOverride) {
|
|
|
601
680
|
], runOptions);
|
|
602
681
|
}
|
|
603
682
|
else {
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
683
|
+
const filterArgs = vfFilters.length > 0 ? ["-vf", vfFilters.join(",")] : [];
|
|
684
|
+
const segmentFrames = Math.round(EXTRACTION_SEGMENT_SECONDS * fps);
|
|
685
|
+
const totalFrames = extractionFrameCountForDuration(duration, normalizedFps, false);
|
|
686
|
+
processResult =
|
|
687
|
+
sampleCfrAtOutputFps && (options.frameRanges || totalFrames > segmentFrames)
|
|
688
|
+
? await runSegmentedExtraction({
|
|
689
|
+
decodeArgs,
|
|
690
|
+
filterAndEncodeArgs: [...filterArgs, ...encodeArgs],
|
|
691
|
+
videoPath,
|
|
692
|
+
startTime,
|
|
693
|
+
fps,
|
|
694
|
+
segments: splitFrameRanges(options.frameRanges ?? [{ firstFrame: 0, frames: totalFrames }], segmentFrames),
|
|
695
|
+
runOptions,
|
|
696
|
+
})
|
|
697
|
+
: await runFfmpeg([...args, ...filterArgs, ...encodeArgs], runOptions);
|
|
607
698
|
}
|
|
608
699
|
if (processResult.failureReason === "external_interruption") {
|
|
609
700
|
throw new VideoSourceExtractionError("external_interruption", true, "Video frame extraction interrupted by host lifecycle", `FFmpeg exited with code ${processResult.exitCode}: ${processResult.stderr.slice(-500)}`);
|
|
@@ -634,7 +725,7 @@ outputDirOverride) {
|
|
|
634
725
|
? "Video frame extraction hit a transient I/O failure"
|
|
635
726
|
: "Video source could not be decoded", diagnostic);
|
|
636
727
|
}
|
|
637
|
-
const framePaths = framePathsFromDirectory(videoOutputDir, format);
|
|
728
|
+
const framePaths = framePathsFromDirectory(videoOutputDir, format, !!options.frameRanges);
|
|
638
729
|
if (framePaths.size === 0 && duration > 0) {
|
|
639
730
|
throw new VideoSourceExtractionError("zero_output", false, "Video source produced no decodable frames", `FFmpeg exited successfully but produced no frames (start=${startTime}, duration=${duration})`);
|
|
640
731
|
}
|
|
@@ -642,7 +733,7 @@ outputDirOverride) {
|
|
|
642
733
|
// frames predicted by the probed duration, the duration is likely
|
|
643
734
|
// inflated (container duration includes a longer audio track). Correct
|
|
644
735
|
// it so downstream coverage accounting uses the actual video extent.
|
|
645
|
-
if (framePaths.size > 0 && duration > 0 && !options.finalFrameOnly) {
|
|
736
|
+
if (framePaths.size > 0 && duration > 0 && !options.finalFrameOnly && !options.frameRanges) {
|
|
646
737
|
const expectedAtFps = extractionFrameCountForDuration(duration, normalizedFps, metadata.isVFR);
|
|
647
738
|
if (expectedAtFps > 0 && framePaths.size <= expectedAtFps * 0.6) {
|
|
648
739
|
const correctedDuration = startTime + framePaths.size / fps;
|
|
@@ -1385,6 +1476,56 @@ export async function extractAllVideoFrames(videos, baseDir, options, signal, co
|
|
|
1385
1476
|
}
|
|
1386
1477
|
return rehydratePublishedCache(work, cacheTarget);
|
|
1387
1478
|
}
|
|
1479
|
+
/**
|
|
1480
|
+
* Every output slot before the source's end holds a frame, so decoding the last second gives
|
|
1481
|
+
* the exact count. Anything unusual returns null and takes the normal path.
|
|
1482
|
+
*/
|
|
1483
|
+
async function deferExtraction(work) {
|
|
1484
|
+
if (work.finalFrameOnly ||
|
|
1485
|
+
work.metadata.isVFR ||
|
|
1486
|
+
work.sdrToHdrTransfer !== undefined ||
|
|
1487
|
+
work.hdrToSdrTransformKey !== undefined) {
|
|
1488
|
+
return null;
|
|
1489
|
+
}
|
|
1490
|
+
const expectedFrames = extractionFrameCountForDuration(work.videoDuration, configuredFps, false);
|
|
1491
|
+
const tailFrames = Math.min(expectedFrames, Math.ceil(fps));
|
|
1492
|
+
if (expectedFrames <= tailFrames)
|
|
1493
|
+
return null;
|
|
1494
|
+
const probeDir = join(options.outputDir, `${work.video.id}.tail-probe`);
|
|
1495
|
+
try {
|
|
1496
|
+
const tail = await extractVideoFramesRange(work.videoPath, work.video.id, work.extractionMediaStart, work.videoDuration, {
|
|
1497
|
+
...scopedExtractionOptions(work),
|
|
1498
|
+
frameRanges: [{ firstFrame: expectedFrames - tailFrames, frames: tailFrames }],
|
|
1499
|
+
}, signal, config, probeDir);
|
|
1500
|
+
const totalFrames = expectedFrames - tailFrames + tail.totalFrames;
|
|
1501
|
+
// A full extraction this short rewrites the probed duration; let it.
|
|
1502
|
+
if (totalFrames <= expectedFrames * 0.6)
|
|
1503
|
+
return null;
|
|
1504
|
+
const outputDir = join(options.outputDir, work.video.id);
|
|
1505
|
+
mkdirSync(outputDir, { recursive: true });
|
|
1506
|
+
return {
|
|
1507
|
+
videoId: work.video.id,
|
|
1508
|
+
srcPath: work.videoPath,
|
|
1509
|
+
outputDir,
|
|
1510
|
+
framePattern: `${FRAME_FILENAME_PREFIX}%05d.${work.format}`,
|
|
1511
|
+
fps,
|
|
1512
|
+
totalFrames,
|
|
1513
|
+
metadata: work.metadata,
|
|
1514
|
+
framePaths: new Map(),
|
|
1515
|
+
deferredRange: {
|
|
1516
|
+
startTime: work.extractionMediaStart,
|
|
1517
|
+
durationSeconds: work.videoDuration,
|
|
1518
|
+
format: work.format,
|
|
1519
|
+
},
|
|
1520
|
+
};
|
|
1521
|
+
}
|
|
1522
|
+
catch {
|
|
1523
|
+
return null;
|
|
1524
|
+
}
|
|
1525
|
+
finally {
|
|
1526
|
+
rmSync(probeDir, { recursive: true, force: true });
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1388
1529
|
async function executeDirectMiss(miss, maxTransientRetries = options.maxTransientRetries ?? 0) {
|
|
1389
1530
|
try {
|
|
1390
1531
|
return { result: await extractDirectMiss(miss, maxTransientRetries) };
|
|
@@ -1506,8 +1647,19 @@ export async function extractAllVideoFrames(videos, baseDir, options, signal, co
|
|
|
1506
1647
|
}
|
|
1507
1648
|
}
|
|
1508
1649
|
const uniqueOutcomes = new Map();
|
|
1650
|
+
if (options.deferRangeExtraction) {
|
|
1651
|
+
const works = [...uniqueWorks.values()];
|
|
1652
|
+
const deferred = await Promise.all(works.map(deferExtraction));
|
|
1653
|
+
works.forEach((work, i) => {
|
|
1654
|
+
const result = deferred[i];
|
|
1655
|
+
if (result)
|
|
1656
|
+
uniqueOutcomes.set(work.dedupeKey, { result });
|
|
1657
|
+
});
|
|
1658
|
+
}
|
|
1509
1659
|
const cacheMisses = [];
|
|
1510
1660
|
for (const work of uniqueWorks.values()) {
|
|
1661
|
+
if (uniqueOutcomes.has(work.dedupeKey))
|
|
1662
|
+
continue;
|
|
1511
1663
|
const lookup = lookupCacheFor(work);
|
|
1512
1664
|
if ("work" in lookup) {
|
|
1513
1665
|
cacheMisses.push(lookup);
|
|
@@ -1568,7 +1720,8 @@ export async function extractAllVideoFrames(videos, baseDir, options, signal, co
|
|
|
1568
1720
|
}
|
|
1569
1721
|
else if ("result" in item) {
|
|
1570
1722
|
extracted.push(item.result);
|
|
1571
|
-
|
|
1723
|
+
if (!item.result.deferredRange)
|
|
1724
|
+
totalFramesExtracted += item.result.totalFrames;
|
|
1572
1725
|
}
|
|
1573
1726
|
}
|
|
1574
1727
|
// Sweep when this render wrote something, plus a staleness fallback so a
|