@hyperframes/engine 0.8.43 → 0.8.45
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 +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/services/chunkEncoder.d.ts +57 -0
- package/dist/services/chunkEncoder.d.ts.map +1 -1
- package/dist/services/chunkEncoder.js +153 -30
- package/dist/services/chunkEncoder.js.map +1 -1
- package/dist/services/frameCapture.d.ts +33 -0
- package/dist/services/frameCapture.d.ts.map +1 -1
- package/dist/services/frameCapture.js +203 -91
- package/dist/services/frameCapture.js.map +1 -1
- package/dist/services/motionBlur.d.ts +103 -0
- package/dist/services/motionBlur.d.ts.map +1 -0
- package/dist/services/motionBlur.js +176 -0
- package/dist/services/motionBlur.js.map +1 -0
- package/dist/services/streamingEncoder.d.ts +10 -0
- package/dist/services/streamingEncoder.d.ts.map +1 -1
- package/dist/services/streamingEncoder.js +12 -3
- package/dist/services/streamingEncoder.js.map +1 -1
- package/dist/types.d.ts +19 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/alphaBlit.d.ts +33 -0
- package/dist/utils/alphaBlit.d.ts.map +1 -1
- package/dist/utils/alphaBlit.js +52 -4
- package/dist/utils/alphaBlit.js.map +1 -1
- package/dist/utils/crc32.d.ts +2 -0
- package/dist/utils/crc32.d.ts.map +1 -0
- package/dist/utils/crc32.js +35 -0
- package/dist/utils/crc32.js.map +1 -0
- package/dist/utils/ffprobe.d.ts.map +1 -1
- package/dist/utils/ffprobe.js +1 -31
- package/dist/utils/ffprobe.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export { augmentPageNavigationTimeoutError, isPageNavigationTimeoutError, type N
|
|
|
39
39
|
export { createCaptureSession, initializeSession, closeCaptureSession, captureFrame, captureFrameToBuffer, captureFrameToBufferPipelined, captureFramesBatchPipelined, DrawElementVerificationError, isDrawElementVerificationError, getDrawElementVerificationDetails, type DrawElementVerificationDetails, recaptureDrawElementFrameForVerify, completeDeferredDrawElementInit, writeCapturedFrame, discardWarmupCapture, getCompositionDuration, getCapturePerfSummary, percentileOf, prepareCaptureSessionForReuse, deriveBeginFrameProbeTimeTicks, type CaptureSession, isTransientBrowserError, isMemoryExhaustionError, type BeforeCaptureHook, type DiscardWarmupInnerCapture, type StaticVerificationOutcome, } from "./services/frameCapture.js";
|
|
40
40
|
export { CaptureFailure, classifyCaptureFailure, isFatalCaptureFailure, type CaptureFailureKind, type CaptureWorkerDiagnostic, } from "./services/captureFailure.js";
|
|
41
41
|
export { beginFrameCapture, pageScreenshotCapture, getCdpSession, injectVideoFramesBatch, syncVideoFrameVisibility, cdpSessionCache, probeBeginFrameLiveness, initTransparentBackground, captureAlphaPng, applyDomLayerMask, removeDomLayerMask, DOM_LAYER_MASK_STYLE_ID, type BeginFrameResult, } from "./services/screenshotService.js";
|
|
42
|
-
export { buildEncoderArgs, encodeFramesFromDir, encodeFramesChunkedConcat, muxVideoWithAudio, applyFaststart, detectGpuEncoder, ENCODER_PRESETS, getEncoderPreset, type GpuEncoder, } from "./services/chunkEncoder.js";
|
|
42
|
+
export { buildEncoderArgs, encodeFramesFromDir, encodeFramesChunkedConcat, muxVideoWithAudio, applyFaststart, packageHls, detectGpuEncoder, ENCODER_PRESETS, getEncoderPreset, HLS_MASTER_PLAYLIST, HLS_VIDEO_PLAYLIST, HLS_AUDIO_PLAYLIST, type GpuEncoder, type PackageHlsOptions, } from "./services/chunkEncoder.js";
|
|
43
43
|
export type { EncoderOptions, EncodeResult, MuxResult } from "./services/chunkEncoder.types.js";
|
|
44
44
|
export { spawnStreamingEncoder, createFrameReorderBuffer, type StreamingEncoder, type StreamingEncoderOptions, type StreamingEncoderResult, type FrameReorderBuffer, } from "./services/streamingEncoder.js";
|
|
45
45
|
export { parseVideoElements, parseImageElements, extractVideoFramesRange, extractAllVideoFrames, resolveTimelineExtractionWindow, resolveVideoExtractionWindow, resolveFinalFrameExtractionWindow, resolveVideoExtractionDuration, resolvePlayableVideoDuration, extractionFrameCountForDuration, resolveProjectRelativeSrc, getFrameAtTime, createFrameLookupTable, FrameLookupTable, analyzeClipMediaFit, classifyVideoExtractionError, isVideoSourceExtractionError, runVideoExtractionWithRetry, safeVideoExtractionSourceIdentity, VideoSourceExtractionError, type VideoElement, type ImageElement, type ExtractedFrames, type ExtractionOptions, type ExtractionResult, type ExtractionPhaseBreakdown, type TimelineExtractionWindow, type VideoExtractionFailure, type VideoExtractionFailureKind, type VideoExtractionFailureGroupDetails, type VideoExtractionFailureRetry, type VideoExtractionFailureStatusClass, type SafeVideoExtractionSourceIdentity, type VideoFrameFormat, VIDEO_FRAME_FORMATS, isVideoFrameFormat, } from "./services/videoFrameExtractor.js";
|
|
@@ -51,6 +51,8 @@ export type { AudioElement, AudioFailureReason, AudioFailureStage, AudioProcessi
|
|
|
51
51
|
export { calculateOptimalWorkers, computeWorkerSizing, selectVerifySampleIndicesForTask, verifyDiskDrawElementSamples, distributeFrames, distributeFramesInterleaved, executeParallelCapture, mergeWorkerFrames, getSystemResources, type WorkerTask, type WorkerResult, type WorkerSizing, type WorkerSizingBound, type ParallelProgress, } from "./services/parallelCoordinator.js";
|
|
52
52
|
export { createFileServer, type FileServerOptions, type FileServerHandle, } from "./services/fileServer.js";
|
|
53
53
|
export { quantizeTimeToFrame, MEDIA_VISUAL_STYLE_PROPERTIES } from "@hyperframes/core";
|
|
54
|
+
export { frameFileExtension } from "./services/frameCapture.js";
|
|
55
|
+
export type { MotionBlurOptions, MotionBlurBlendSpace } from "./services/motionBlur.js";
|
|
54
56
|
export { assertSwiftShader, readWebGlVendorInfo, SwiftShaderAssertionError, BROWSER_GPU_NOT_SOFTWARE, } from "./utils/assertSwiftShader.js";
|
|
55
57
|
export { readWebGlVendorInfoFromCanvas } from "./utils/readWebGlVendorInfoFromCanvas.js";
|
|
56
58
|
export { extractMediaMetadata, extractVideoMetadata, extractFinalVideoFrameTimestamp, extractAudioMetadata, probeMediaProfile, analyzeKeyframeIntervals, type VideoMetadata, type AudioMetadata, type MediaProbeProfile, type KeyframeAnalysis, } from "./utils/ffprobe.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,+BAA+B,EAC/B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,KAAK,YAAY,EACjB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,4BAA4B,EAC5B,KAAK,4BAA4B,GAClC,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,KAAK,8BAA8B,EACnC,kCAAkC,EAClC,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,cAAc,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ export { CaptureFailure, classifyCaptureFailure, isFatalCaptureFailure, } from "
|
|
|
43
43
|
// ── Screenshot (BeginFrame) ─────────────────────────────────────────────────────
|
|
44
44
|
export { beginFrameCapture, pageScreenshotCapture, getCdpSession, injectVideoFramesBatch, syncVideoFrameVisibility, cdpSessionCache, probeBeginFrameLiveness, initTransparentBackground, captureAlphaPng, applyDomLayerMask, removeDomLayerMask, DOM_LAYER_MASK_STYLE_ID, } from "./services/screenshotService.js";
|
|
45
45
|
// ── Encoding ───────────────────────────────────────────────────────────────────
|
|
46
|
-
export { buildEncoderArgs, encodeFramesFromDir, encodeFramesChunkedConcat, muxVideoWithAudio, applyFaststart, detectGpuEncoder, ENCODER_PRESETS, getEncoderPreset, } from "./services/chunkEncoder.js";
|
|
46
|
+
export { buildEncoderArgs, encodeFramesFromDir, encodeFramesChunkedConcat, muxVideoWithAudio, applyFaststart, packageHls, detectGpuEncoder, ENCODER_PRESETS, getEncoderPreset, HLS_MASTER_PLAYLIST, HLS_VIDEO_PLAYLIST, HLS_AUDIO_PLAYLIST, } from "./services/chunkEncoder.js";
|
|
47
47
|
export { spawnStreamingEncoder, createFrameReorderBuffer, } from "./services/streamingEncoder.js";
|
|
48
48
|
// ── Media processing ───────────────────────────────────────────────────────────
|
|
49
49
|
export { parseVideoElements, parseImageElements, extractVideoFramesRange, extractAllVideoFrames, resolveTimelineExtractionWindow, resolveVideoExtractionWindow, resolveFinalFrameExtractionWindow, resolveVideoExtractionDuration, resolvePlayableVideoDuration, extractionFrameCountForDuration, resolveProjectRelativeSrc, getFrameAtTime, createFrameLookupTable, FrameLookupTable, analyzeClipMediaFit, classifyVideoExtractionError, isVideoSourceExtractionError, runVideoExtractionWithRetry, safeVideoExtractionSourceIdentity, VideoSourceExtractionError, VIDEO_FRAME_FORMATS, isVideoFrameFormat, } from "./services/videoFrameExtractor.js";
|
|
@@ -57,6 +57,7 @@ export { calculateOptimalWorkers, computeWorkerSizing, selectVerifySampleIndices
|
|
|
57
57
|
export { createFileServer, } from "./services/fileServer.js";
|
|
58
58
|
// ── Utilities ──────────────────────────────────────────────────────────────────
|
|
59
59
|
export { quantizeTimeToFrame, MEDIA_VISUAL_STYLE_PROPERTIES } from "@hyperframes/core";
|
|
60
|
+
export { frameFileExtension } from "./services/frameCapture.js";
|
|
60
61
|
export { assertSwiftShader, readWebGlVendorInfo, SwiftShaderAssertionError, BROWSER_GPU_NOT_SOFTWARE, } from "./utils/assertSwiftShader.js";
|
|
61
62
|
export { readWebGlVendorInfoFromCanvas } from "./utils/readWebGlVendorInfoFromCanvas.js";
|
|
62
63
|
export { extractMediaMetadata, extractVideoMetadata, extractFinalVideoFrameTimestamp, extractAudioMetadata, probeMediaProfile, analyzeKeyframeIntervals, } from "./utils/ffprobe.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAiBH,kFAAkF;AAClF,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,+BAA+B,EAC/B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,GAGnC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GAOjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAE7B,MAAM,8CAA8C,CAAC;AAEtD,mFAAmF;AACnF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EAEjC,kCAAkC,EAClC,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,6BAA6B,EAC7B,8BAA8B,EAE9B,uBAAuB,EACvB,uBAAuB,GAIxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AAEtC,mFAAmF;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAEzC,kFAAkF;AAClF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,9 +61,66 @@ export declare function getEncoderPreset(quality: "draft" | "standard" | "high",
|
|
|
61
61
|
transfer: HdrTransfer;
|
|
62
62
|
}): EncoderPreset;
|
|
63
63
|
export { detectGpuEncoder, type GpuEncoder } from "../utils/gpuEncoder.js";
|
|
64
|
+
/** The `lockGopForChunkConcat` / `gopSize` pair, shared by every encoder entry point. */
|
|
65
|
+
export interface LockedGopOptions {
|
|
66
|
+
lockGopForChunkConcat?: boolean;
|
|
67
|
+
gopSize?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Integer GOP length, or `null` when no lock was requested. Throws on a lock
|
|
71
|
+
* with an invalid size — a silent fallback ships open-GOP output that only
|
|
72
|
+
* surfaces later as a broken playback seam.
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveLockedGopSize(options: LockedGopOptions): number | null;
|
|
75
|
+
/**
|
|
76
|
+
* Closed-GOP / forced-keyframe args for libx264 / libx265, so an orchestrator
|
|
77
|
+
* can concat chunks with `-c copy` or cut the stream into segments with
|
|
78
|
+
* `-f hls -c copy`. Without them the encoder picks its own keyframes and a
|
|
79
|
+
* boundary may not land on an independently decodable IDR.
|
|
80
|
+
*/
|
|
81
|
+
export declare function appendLockedGopArgs(args: string[], gopSize: number): void;
|
|
82
|
+
/**
|
|
83
|
+
* The `-x264-params` / `-x265-params` fragment that bakes the IDR cadence into
|
|
84
|
+
* the encoder itself — `-force_key_frames` alone still permits mini-GOPs with
|
|
85
|
+
* open-GOP references. `repeat-headers=1` keeps each boundary self-contained.
|
|
86
|
+
*/
|
|
87
|
+
export declare function lockedGopCodecParams(codec: "h264" | "h265", gopSize: number): string;
|
|
64
88
|
export declare function buildEncoderArgs(options: EncoderOptions, inputArgs: string[], outputPath: string, gpuEncoder?: GpuEncoder): string[];
|
|
65
89
|
export declare function encodeFramesFromDir(framesDir: string, framePattern: string, outputPath: string, options: EncoderOptions, signal?: AbortSignal, config?: Partial<Pick<EngineConfig, "ffmpegEncodeTimeout">>): Promise<EncodeResult>;
|
|
66
90
|
export declare function encodeFramesChunkedConcat(framesDir: string, framePattern: string, outputPath: string, options: EncoderOptions, chunkSizeFrames: number, signal?: AbortSignal, config?: Partial<Pick<EngineConfig, "ffmpegEncodeTimeout">>): Promise<EncodeResult>;
|
|
67
91
|
export declare function muxVideoWithAudio(videoPath: string, audioPath: string, outputPath: string, signal?: AbortSignal, config?: MuxVideoWithAudioOptions, fps?: Fps): Promise<MuxResult>;
|
|
92
|
+
export declare const HLS_MASTER_PLAYLIST = "master.m3u8";
|
|
93
|
+
export declare const HLS_VIDEO_PLAYLIST = "video.m3u8";
|
|
94
|
+
export declare const HLS_AUDIO_PLAYLIST = "audio.m3u8";
|
|
95
|
+
/**
|
|
96
|
+
* Drop the standalone audio-only variant ffmpeg's `-var_stream_map` adds to
|
|
97
|
+
* the master playlist.
|
|
98
|
+
*
|
|
99
|
+
* With `a:0,agroup:aud` the hls muxer lists the audio rendition twice: as the
|
|
100
|
+
* `#EXT-X-MEDIA:TYPE=AUDIO` entry the video variant references (wanted), and
|
|
101
|
+
* again as its own `#EXT-X-STREAM-INF` variant with no `RESOLUTION` (not
|
|
102
|
+
* wanted). That is valid HLS, but a player choosing variants by bandwidth can
|
|
103
|
+
* pick it and play sound with no picture, and the VOD consumer asked for a
|
|
104
|
+
* single rendition. A variant tag without a `RESOLUTION` attribute is
|
|
105
|
+
* audio-only; its URI is always the following line, so both go.
|
|
106
|
+
*/
|
|
107
|
+
export declare function stripAudioOnlyVariants(masterPlaylist: string): string;
|
|
108
|
+
export interface PackageHlsOptions extends Partial<Pick<EngineConfig, "ffmpegProcessTimeout">> {
|
|
109
|
+
/** Whole seconds, so it matches the integer `EXT-X-TARGETDURATION` ffmpeg writes. */
|
|
110
|
+
segmentSeconds: number;
|
|
111
|
+
signal?: AbortSignal;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Stream-copy an H.264 video (and optional AAC sidecar) into an HLS VOD
|
|
115
|
+
* directory: `master.m3u8`, `video.m3u8` + `video_%05d.ts`, and `audio.m3u8` +
|
|
116
|
+
* `audio_%05d.ts` when audio is given. `outputPath` in the result is the directory.
|
|
117
|
+
* The master carries exactly one `#EXT-X-STREAM-INF` variant (the video, with
|
|
118
|
+
* the audio attached as a rendition group); see `stripAudioOnlyVariants`.
|
|
119
|
+
*
|
|
120
|
+
* `-hls_time` cuts at the first keyframe at or after each target, so the input
|
|
121
|
+
* must be encoded with the GOP lock (`gopSize = segmentSeconds × fps`). The lock
|
|
122
|
+
* is software-encoder only; a GPU encode will not segment on time.
|
|
123
|
+
*/
|
|
124
|
+
export declare function packageHls(videoPath: string, audioPath: string | null, outputDir: string, options: PackageHlsOptions): Promise<MuxResult>;
|
|
68
125
|
export declare function applyFaststart(inputPath: string, outputPath: string, signal?: AbortSignal, config?: Partial<Pick<EngineConfig, "ffmpegProcessTimeout">>, fps?: Fps): Promise<MuxResult>;
|
|
69
126
|
//# sourceMappingURL=chunkEncoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkEncoder.d.ts","sourceRoot":"","sources":["../../src/services/chunkEncoder.ts"],"names":[],"mappings":"AACA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"chunkEncoder.d.ts","sourceRoot":"","sources":["../../src/services/chunkEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Encodes captured frames into video using FFmpeg.
|
|
6
6
|
* Supports CPU (libx264) and GPU encoding.
|
|
7
7
|
*/
|
|
8
|
-
import { copyFileSync, existsSync, mkdirSync, mkdtempSync, readdirSync, statSync, writeFileSync, } from "fs";
|
|
8
|
+
import { closeSync, copyFileSync, existsSync, ftruncateSync, mkdirSync, mkdtempSync, openSync, readFileSync, readdirSync, statSync, writeFileSync, writeSync, } from "fs";
|
|
9
9
|
import { join, dirname, extname } from "path";
|
|
10
10
|
import { DEFAULT_CONFIG } from "../config.js";
|
|
11
11
|
import { getCachedGpuEncoder, getGpuEncoderName, buildVideoToolboxRateControlArgs, mapPresetForGpuEncoder, } from "../utils/gpuEncoder.js";
|
|
@@ -98,6 +98,39 @@ export function getEncoderPreset(quality, format = "mp4", hdr) {
|
|
|
98
98
|
}
|
|
99
99
|
// Re-export GPU utilities so existing consumers that import from chunkEncoder still work.
|
|
100
100
|
export { detectGpuEncoder } from "../utils/gpuEncoder.js";
|
|
101
|
+
/**
|
|
102
|
+
* Integer GOP length, or `null` when no lock was requested. Throws on a lock
|
|
103
|
+
* with an invalid size — a silent fallback ships open-GOP output that only
|
|
104
|
+
* surfaces later as a broken playback seam.
|
|
105
|
+
*/
|
|
106
|
+
export function resolveLockedGopSize(options) {
|
|
107
|
+
if (options.lockGopForChunkConcat !== true)
|
|
108
|
+
return null;
|
|
109
|
+
if (typeof options.gopSize !== "number" ||
|
|
110
|
+
!Number.isFinite(options.gopSize) ||
|
|
111
|
+
options.gopSize <= 0) {
|
|
112
|
+
throw new Error(`[chunkEncoder] lockGopForChunkConcat=true requires a positive integer gopSize (received ${String(options.gopSize)})`);
|
|
113
|
+
}
|
|
114
|
+
return Math.floor(options.gopSize);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Closed-GOP / forced-keyframe args for libx264 / libx265, so an orchestrator
|
|
118
|
+
* can concat chunks with `-c copy` or cut the stream into segments with
|
|
119
|
+
* `-f hls -c copy`. Without them the encoder picks its own keyframes and a
|
|
120
|
+
* boundary may not land on an independently decodable IDR.
|
|
121
|
+
*/
|
|
122
|
+
export function appendLockedGopArgs(args, gopSize) {
|
|
123
|
+
args.push("-g", String(gopSize), "-keyint_min", String(gopSize), "-sc_threshold", "0", "-force_key_frames", `expr:eq(mod(n,${gopSize}),0)`);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* The `-x264-params` / `-x265-params` fragment that bakes the IDR cadence into
|
|
127
|
+
* the encoder itself — `-force_key_frames` alone still permits mini-GOPs with
|
|
128
|
+
* open-GOP references. `repeat-headers=1` keeps each boundary self-contained.
|
|
129
|
+
*/
|
|
130
|
+
export function lockedGopCodecParams(codec, gopSize) {
|
|
131
|
+
const shared = "scenecut=0:open-gop=0:repeat-headers=1";
|
|
132
|
+
return codec === "h264" ? shared : `keyint=${gopSize}:min-keyint=${gopSize}:${shared}`;
|
|
133
|
+
}
|
|
101
134
|
export function buildEncoderArgs(options, inputArgs, outputPath, gpuEncoder = null) {
|
|
102
135
|
const { fps, codec = "h264", preset = "medium", quality = 23, bitrate, pixelFormat = "yuv420p", vp9CpuUsed, useGpu = false, } = options;
|
|
103
136
|
// libx264 cannot encode HDR. If a caller passes hdr with codec=h264 we'd
|
|
@@ -182,21 +215,11 @@ export function buildEncoderArgs(options, inputArgs, outputPath, gpuEncoder = nu
|
|
|
182
215
|
else
|
|
183
216
|
args.push("-crf", String(quality));
|
|
184
217
|
// Closed-GOP / forced-keyframe args so an external orchestrator can
|
|
185
|
-
// ffmpeg-concat chunk files with `-c copy`.
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
let gop = 0;
|
|
191
|
-
if (lockGop) {
|
|
192
|
-
if (typeof options.gopSize !== "number" ||
|
|
193
|
-
!Number.isFinite(options.gopSize) ||
|
|
194
|
-
options.gopSize <= 0) {
|
|
195
|
-
throw new Error(`[chunkEncoder] lockGopForChunkConcat=true requires a positive integer gopSize (received ${String(options.gopSize)})`);
|
|
196
|
-
}
|
|
197
|
-
gop = Math.floor(options.gopSize);
|
|
198
|
-
args.push("-g", String(gop), "-keyint_min", String(gop), "-sc_threshold", "0", "-force_key_frames", `expr:eq(mod(n,${gop}),0)`);
|
|
199
|
-
}
|
|
218
|
+
// ffmpeg-concat chunk files with `-c copy`. See `appendLockedGopArgs`.
|
|
219
|
+
const gop = resolveLockedGopSize(options);
|
|
220
|
+
const lockGop = gop !== null;
|
|
221
|
+
if (gop !== null)
|
|
222
|
+
appendLockedGopArgs(args, gop);
|
|
200
223
|
// Disable B-frames. Standard h264 with B-frames produces negative DTS
|
|
201
224
|
// at the start of the stream (the first B-frame's decode order is
|
|
202
225
|
// "before" the first I-frame's presentation time). VS Code's video
|
|
@@ -230,11 +253,7 @@ export function buildEncoderArgs(options, inputArgs, outputPath, gpuEncoder = nu
|
|
|
230
253
|
const colorParams = codec === "h265" && options.hdr
|
|
231
254
|
? getHdrEncoderColorParams(options.hdr.transfer).x265ColorParams
|
|
232
255
|
: "colorprim=bt709:transfer=bt709:colormatrix=bt709";
|
|
233
|
-
|
|
234
|
-
if (lockGop) {
|
|
235
|
-
const shared = "scenecut=0:open-gop=0:repeat-headers=1";
|
|
236
|
-
gopParams = codec === "h264" ? shared : `keyint=${gop}:min-keyint=${gop}:${shared}`;
|
|
237
|
-
}
|
|
256
|
+
const gopParams = gop !== null ? lockedGopCodecParams(codec, gop) : "";
|
|
238
257
|
const joinParams = (...parts) => parts.filter((p) => p.length > 0).join(":");
|
|
239
258
|
if (preset === "ultrafast") {
|
|
240
259
|
args.push(xParamsFlag, joinParams("aq-mode=3", colorParams, gopParams));
|
|
@@ -259,15 +278,10 @@ export function buildEncoderArgs(options, inputArgs, outputPath, gpuEncoder = nu
|
|
|
259
278
|
// displayable reference when alt-ref is on. The shared `vp9CpuUsed`
|
|
260
279
|
// option pins speed/quality against libvpx-vp9 default drift across
|
|
261
280
|
// versions for both chunked and streaming WebM encodes.
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
options.gopSize <= 0) {
|
|
267
|
-
throw new Error(`[chunkEncoder] lockGopForChunkConcat=true requires a positive integer gopSize (received ${String(options.gopSize)})`);
|
|
268
|
-
}
|
|
269
|
-
const gop = Math.floor(options.gopSize);
|
|
270
|
-
args.push("-g", String(gop), "-keyint_min", String(gop), "-auto-alt-ref", "0");
|
|
281
|
+
const vp9Gop = resolveLockedGopSize(options);
|
|
282
|
+
const lockGopVp9 = vp9Gop !== null;
|
|
283
|
+
if (vp9Gop !== null) {
|
|
284
|
+
args.push("-g", String(vp9Gop), "-keyint_min", String(vp9Gop), "-auto-alt-ref", "0");
|
|
271
285
|
}
|
|
272
286
|
if (pixelFormat === "yuva420p") {
|
|
273
287
|
// Alpha + alt-ref is unsupported by libvpx-vp9. The closed-GOP
|
|
@@ -592,6 +606,115 @@ export async function muxVideoWithAudio(videoPath, audioPath, outputPath, signal
|
|
|
592
606
|
failureReason: result.failureReason,
|
|
593
607
|
};
|
|
594
608
|
}
|
|
609
|
+
export const HLS_MASTER_PLAYLIST = "master.m3u8";
|
|
610
|
+
export const HLS_VIDEO_PLAYLIST = "video.m3u8";
|
|
611
|
+
export const HLS_AUDIO_PLAYLIST = "audio.m3u8";
|
|
612
|
+
/**
|
|
613
|
+
* Drop the standalone audio-only variant ffmpeg's `-var_stream_map` adds to
|
|
614
|
+
* the master playlist.
|
|
615
|
+
*
|
|
616
|
+
* With `a:0,agroup:aud` the hls muxer lists the audio rendition twice: as the
|
|
617
|
+
* `#EXT-X-MEDIA:TYPE=AUDIO` entry the video variant references (wanted), and
|
|
618
|
+
* again as its own `#EXT-X-STREAM-INF` variant with no `RESOLUTION` (not
|
|
619
|
+
* wanted). That is valid HLS, but a player choosing variants by bandwidth can
|
|
620
|
+
* pick it and play sound with no picture, and the VOD consumer asked for a
|
|
621
|
+
* single rendition. A variant tag without a `RESOLUTION` attribute is
|
|
622
|
+
* audio-only; its URI is always the following line, so both go.
|
|
623
|
+
*/
|
|
624
|
+
export function stripAudioOnlyVariants(masterPlaylist) {
|
|
625
|
+
const lines = masterPlaylist.split("\n");
|
|
626
|
+
const kept = [];
|
|
627
|
+
for (let i = 0; i < lines.length; i++) {
|
|
628
|
+
const line = lines[i];
|
|
629
|
+
if (line.startsWith("#EXT-X-STREAM-INF:") && !line.includes("RESOLUTION=")) {
|
|
630
|
+
// ffmpeg separates variants with a blank line; drop the one before this
|
|
631
|
+
// variant so the master does not end up with two in a row.
|
|
632
|
+
if (kept.at(-1) === "")
|
|
633
|
+
kept.pop();
|
|
634
|
+
i += 1;
|
|
635
|
+
continue;
|
|
636
|
+
}
|
|
637
|
+
kept.push(line);
|
|
638
|
+
}
|
|
639
|
+
return kept.join("\n");
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Stream-copy an H.264 video (and optional AAC sidecar) into an HLS VOD
|
|
643
|
+
* directory: `master.m3u8`, `video.m3u8` + `video_%05d.ts`, and `audio.m3u8` +
|
|
644
|
+
* `audio_%05d.ts` when audio is given. `outputPath` in the result is the directory.
|
|
645
|
+
* The master carries exactly one `#EXT-X-STREAM-INF` variant (the video, with
|
|
646
|
+
* the audio attached as a rendition group); see `stripAudioOnlyVariants`.
|
|
647
|
+
*
|
|
648
|
+
* `-hls_time` cuts at the first keyframe at or after each target, so the input
|
|
649
|
+
* must be encoded with the GOP lock (`gopSize = segmentSeconds × fps`). The lock
|
|
650
|
+
* is software-encoder only; a GPU encode will not segment on time.
|
|
651
|
+
*/
|
|
652
|
+
export async function packageHls(videoPath, audioPath, outputDir, options) {
|
|
653
|
+
const { segmentSeconds, signal } = options;
|
|
654
|
+
if (!Number.isInteger(segmentSeconds) || segmentSeconds <= 0) {
|
|
655
|
+
throw new Error(`[chunkEncoder] packageHls requires a positive integer segmentSeconds (received ${String(segmentSeconds)})`);
|
|
656
|
+
}
|
|
657
|
+
// `-hls_segment_filename` is a printf template and the hls muxer does not honor `%%`.
|
|
658
|
+
if (outputDir.includes("%")) {
|
|
659
|
+
throw new Error(`[chunkEncoder] packageHls outputDir must not contain "%": ${outputDir}`);
|
|
660
|
+
}
|
|
661
|
+
// ffmpeg does not create the directory for the segment pattern.
|
|
662
|
+
if (!existsSync(outputDir))
|
|
663
|
+
mkdirSync(outputDir, { recursive: true });
|
|
664
|
+
const hasAudio = audioPath !== null;
|
|
665
|
+
const args = hasAudio
|
|
666
|
+
? ["-i", videoPath, "-i", audioPath, "-map", "0:v:0", "-map", "1:a:0"]
|
|
667
|
+
: ["-i", videoPath, "-map", "0:v:0"];
|
|
668
|
+
args.push("-c", "copy", "-f", "hls", "-hls_time", String(segmentSeconds), "-hls_playlist_type", "vod", "-hls_flags", "independent_segments", "-hls_segment_type", "mpegts", "-var_stream_map", hasAudio ? "v:0,agroup:aud,name:video a:0,agroup:aud,name:audio" : "v:0,name:video", "-master_pl_name", HLS_MASTER_PLAYLIST, "-hls_segment_filename", join(outputDir, "%v_%05d.ts"),
|
|
669
|
+
// Without these the mpegts muxer starts the stream at PTS 1.4 s.
|
|
670
|
+
"-muxdelay", "0", "-muxpreload", "0");
|
|
671
|
+
// No provenance tags (MPEG-TS drops them; `-movflags` is invalid for `-f hls`)
|
|
672
|
+
// and no `-avoid_negative_ts`, which would drop the AAC priming (#3487).
|
|
673
|
+
args.push("-y", join(outputDir, "%v.m3u8"));
|
|
674
|
+
const processTimeout = options.ffmpegProcessTimeout ?? DEFAULT_CONFIG.ffmpegProcessTimeout;
|
|
675
|
+
const result = await runFfmpeg(args, { signal, timeout: processTimeout });
|
|
676
|
+
if (signal?.aborted) {
|
|
677
|
+
return {
|
|
678
|
+
success: false,
|
|
679
|
+
outputPath: outputDir,
|
|
680
|
+
durationMs: result.durationMs,
|
|
681
|
+
error: "FFmpeg HLS packaging cancelled",
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
if (result.success && hasAudio) {
|
|
685
|
+
const masterPath = join(outputDir, HLS_MASTER_PLAYLIST);
|
|
686
|
+
// One descriptor for the read-modify-write: re-resolving the path to write
|
|
687
|
+
// it back races anything else in this predictable temp dir, and `r+` with
|
|
688
|
+
// owner-only mode neither creates nor widens the playlist ffmpeg wrote.
|
|
689
|
+
// A missing one is fine — the argument-level tests stub ffmpeg.
|
|
690
|
+
let master;
|
|
691
|
+
try {
|
|
692
|
+
master = openSync(masterPath, "r+", 0o600);
|
|
693
|
+
}
|
|
694
|
+
catch (error) {
|
|
695
|
+
if (error.code !== "ENOENT")
|
|
696
|
+
throw error;
|
|
697
|
+
}
|
|
698
|
+
if (master !== undefined) {
|
|
699
|
+
try {
|
|
700
|
+
const stripped = stripAudioOnlyVariants(readFileSync(master, "utf-8"));
|
|
701
|
+
// Stripping only shortens the playlist; truncate or the tail survives.
|
|
702
|
+
ftruncateSync(master, 0);
|
|
703
|
+
writeSync(master, stripped, 0, "utf-8");
|
|
704
|
+
}
|
|
705
|
+
finally {
|
|
706
|
+
closeSync(master);
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
return {
|
|
711
|
+
success: result.success,
|
|
712
|
+
outputPath: outputDir,
|
|
713
|
+
durationMs: result.durationMs,
|
|
714
|
+
error: !result.success ? formatFfmpegError(result.exitCode, result.stderr) : undefined,
|
|
715
|
+
failureReason: result.failureReason,
|
|
716
|
+
};
|
|
717
|
+
}
|
|
595
718
|
export async function applyFaststart(inputPath, outputPath, signal, config, fps) {
|
|
596
719
|
// faststart is MP4-only (moves moov atom to file start for streaming).
|
|
597
720
|
// WebM and MOV don't need it — skip the re-mux.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkEncoder.js","sourceRoot":"","sources":["../../src/services/chunkEncoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunkEncoder.js","sourceRoot":"","sources":["../../src/services/chunkEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { type Browser, type Page } from "puppeteer-core";
|
|
10
10
|
import { type RawAuthoredTiming } from "@hyperframes/core";
|
|
11
|
+
import { type MotionBlurPlan } from "./motionBlur.js";
|
|
11
12
|
import { type BrowserLease, type CaptureMode } from "./browserManager.js";
|
|
12
13
|
import { pageScreenshotCapture } from "./screenshotService.js";
|
|
13
14
|
import { type EngineConfig } from "../config.js";
|
|
@@ -39,6 +40,13 @@ export interface CaptureSession {
|
|
|
39
40
|
lastFrameAbsoluteIndex?: number;
|
|
40
41
|
/** Count of frames served from a reused buffer (dedup telemetry). */
|
|
41
42
|
staticDedupCount?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Resolved sub-frame motion-blur plan, or undefined when off. Set once by
|
|
45
|
+
* `resolveSessionMotionBlur` at the end of initialization, where the capture mode has
|
|
46
|
+
* settled, so an unsupported combination fails before the first frame rather than
|
|
47
|
+
* silently rendering unblurred.
|
|
48
|
+
*/
|
|
49
|
+
motionBlur?: MotionBlurPlan;
|
|
42
50
|
/** Dedup was enabled for this render (default-on; opt out with `HF_STATIC_DEDUP=false`). */
|
|
43
51
|
staticDedupEnabled?: boolean;
|
|
44
52
|
/** Original predicted-static count, before profitability or partial verification. */
|
|
@@ -482,7 +490,25 @@ export declare function verifyStaticFramesSafe(session: CaptureSession, page: Pa
|
|
|
482
490
|
* production caller.
|
|
483
491
|
*/
|
|
484
492
|
export declare function withFrameDeadline<T>(work: Promise<T>, label: string, ms: number, onTimeout?: () => void): Promise<T>;
|
|
493
|
+
/**
|
|
494
|
+
* Resolve the session's motion-blur plan, rejecting combinations the accumulation pass
|
|
495
|
+
* cannot render correctly instead of silently producing an unblurred frame.
|
|
496
|
+
*
|
|
497
|
+
* Called once initialization has settled the capture mode. `format: "png"` is required
|
|
498
|
+
* because samples are averaged pixel by pixel: JPEG samples would be averaged after
|
|
499
|
+
* lossy quantization and the blended frame is re-encoded as PNG. `<video>` content is
|
|
500
|
+
* out of scope because it is supplied by the before-capture frame-injection hook rather
|
|
501
|
+
* than by the timeline seek, so it cannot follow a sub-frame time.
|
|
502
|
+
*/
|
|
503
|
+
export declare function resolveSessionMotionBlur(session: CaptureSession): MotionBlurPlan | undefined;
|
|
485
504
|
export declare function captureFrame(session: CaptureSession, frameIndex: number, time: number): Promise<CaptureResult>;
|
|
505
|
+
/**
|
|
506
|
+
* File extension for a captured frame, keyed on the format the frames were actually
|
|
507
|
+
* captured in. The encoder's input pattern and the writer must agree, so both read this
|
|
508
|
+
* rather than re-deriving the answer from whether the OUTPUT needs alpha, which is a
|
|
509
|
+
* different question and stops being equivalent as soon as anything else forces PNG.
|
|
510
|
+
*/
|
|
511
|
+
export declare function frameFileExtension(format: "jpeg" | "png" | undefined): "png" | "jpg";
|
|
486
512
|
/**
|
|
487
513
|
* Write an already-captured frame buffer to the session's output dir using the
|
|
488
514
|
* canonical `frame_NNNNNN.{jpg,png}` naming. `fileIndex` is the ENCODER-facing
|
|
@@ -512,6 +538,13 @@ export declare function captureFrameToBuffer(session: CaptureSession, frameIndex
|
|
|
512
538
|
* - macOS hardware GPU path (syncToPaintEvent=true, beginFrameTimeTicks=0).
|
|
513
539
|
* BeginFrame (Linux) uses the standard synchronous path unchanged.
|
|
514
540
|
*/
|
|
541
|
+
/**
|
|
542
|
+
* Worker-encode path, gated to drawElement capture. It does not route through
|
|
543
|
+
* `captureFrameCore` and so has no accumulation branch; that is safe only because
|
|
544
|
+
* `resolveSessionMotionBlur` rejects every capture mode except screenshot, which makes
|
|
545
|
+
* this function unreachable with motion blur on. Widening the supported capture modes
|
|
546
|
+
* means handling accumulation here too.
|
|
547
|
+
*/
|
|
515
548
|
export declare function captureFrameToBufferPipelined(session: CaptureSession, frameIndex: number, time: number): Promise<{
|
|
516
549
|
encodeResult: Promise<Buffer>;
|
|
517
550
|
captureTimeMs: number;
|