Creates a settings object initialized with SDK defaults.
Returns the per-channel mono downmix weights.
The per-channel mono downmix weights.
Returns the mono downmix formula for waveform samples.
The mono downmix formula for waveform samples.
Returns whether waveform samples are downmixed to mono.
Whether waveform samples are downmixed to mono.
Returns the stored waveform sample rate in Hz.
The stored waveform sample rate in Hz.
Returns the audio seek back-off in seconds.
The audio seek back-off in seconds.
Returns whether waveform samples are extracted for audio media.
Whether waveform samples are extracted for audio media.
Returns whether image textures are uploaded eagerly on init.
Whether image textures are uploaded eagerly on init.
Returns whether video sources are loaded dynamically.
Whether video sources are loaded dynamically.
Returns the dynamic-load proximity window in seconds.
The dynamic-load proximity window in seconds.
Returns the minimum time between filmstrip frames, in seconds.
The minimum time between filmstrip frames, in seconds.
Returns whether filmstrip extraction decodes only keyframes.
Whether filmstrip extraction decodes only keyframes.
Returns the maximum number of filmstrip frames per media.
The maximum number of filmstrip frames per media.
Returns the maximum filmstrip thumbnail height in pixels.
The maximum filmstrip thumbnail height in pixels.
Returns the maximum filmstrip thumbnail width in pixels.
The maximum filmstrip thumbnail width in pixels.
Returns the maximum number of concurrent filmstrip workers.
The maximum number of concurrent filmstrip workers.
Returns the video seek back-off in seconds.
The video seek back-off in seconds.
Returns whether filmstrips are extracted for video media.
Whether filmstrips are extracted for video media.
Returns whether waveform samples are extracted for video media.
Whether waveform samples are extracted for video media.
Returns the decoder hardware-acceleration preference.
The decoder hardware-acceleration preference.
Returns whether video clips demux on separate workers.
Whether video clips demux on separate workers.
Returns whether decoded frames are uploaded with texSubImage2D.
Whether decoded frames are uploaded with texSubImage2D.
Returns whether the WebCodecs decoder is used.
Whether the WebCodecs decoder is used.
Returns the immutable default settings payload derived from SettingsSchema.
The default settings object.
Returns the target video bitrate in bps.
The target video bitrate in bps.
Returns the CRF used by the wasm FFmpeg encoder path.
The CRF used by the wasm FFmpeg encoder path.
Returns the wasm encoder deadline in microseconds.
The wasm encoder deadline in microseconds.
Returns the forced RFC 6381 codec string ("" when none).
The forced RFC 6381 codec string ("" when none).
Returns the keyframe interval in frames.
The keyframe interval in frames.
Returns the encoder performance (latency) mode.
The encoder performance (latency) mode.
Returns the encoder hardware-acceleration preference.
The encoder hardware-acceleration preference.
Returns whether the export requests an alpha channel.
Whether the export requests an alpha channel.
Returns whether the WebCodecs encoder is used.
Whether the WebCodecs encoder is used.
Returns the [width, height] cap for HLS variant selection.
The [width, height] cap for HLS variant selection.
Returns whether media hashes are computed in the background.
Whether media hashes are computed in the background.
Returns the maximum number of background hash workers.
The maximum number of background hash workers.
Returns the maximum number of pooled media info workers (0 = disabled).
The maximum number of pooled media info workers (0 = disabled).
Returns the maximum number of pooled transcode workers (0 = disabled).
The maximum number of pooled transcode workers (0 = disabled).
Returns whether export audio is mixed on a dedicated worker.
Whether export audio is mixed on a dedicated worker.
Returns the export cancel timeout in milliseconds.
The export cancel timeout in milliseconds.
Returns the maximum output chunk size in bytes.
The maximum output chunk size in bytes.
Returns whether the diagonal anti-alias fix is applied.
Whether the diagonal anti-alias fix is applied.
Returns the maximum number of in-flight frame reads during export.
The maximum number of in-flight frame reads during export.
Returns the export stall watchdog timeout in milliseconds.
The export stall watchdog timeout in milliseconds.
Returns the export back-pressure throttle factor.
The export back-pressure throttle factor.
Returns whether the export produces chunked output.
Whether the export produces chunked output.
Returns whether the export uses the direct-frames path.
Whether the export uses the direct-frames path.
Returns whether the subtitle wrap width follows display resizes.
Whether the subtitle wrap width follows display resizes.
Returns whether subtitles scale with the display on resize.
Whether subtitles scale with the display on resize.
Returns whether the internal transcoder is used.
Whether the internal transcoder is used.
Returns the auto-layout strategy applied on display resize.
The auto-layout strategy applied on display resize.
Serializes the current settings into a schema-validated plain object.
The serialized settings payload.
Sets per-channel weights for the mono downmix (unitless, normalized for the average modes).
Channels beyond the array length get weight 0; if all weights sum to 0, channel 0 gets
weight 1. Default [1.0, 1.0].
Per-channel mix weights, index = channel.
Nothing.
Sets the mono downmix formula for waveform samples (average, absolute average, peak/absolute
max/min). Only applied when setClipAudioSampleForceMono is enabled.
Default MonoMixType.ABSOLUTE_AVERAGE.
Mono downmix formula.
Nothing.
Downmixes extracted waveform samples to a single channel (see setClipAudioMonoMixType).
Default false.
Whether waveform samples are downmixed to mono.
Nothing.
Sets the sample rate (Hz) of the stored waveform samples. Decoding runs at the source rate and is
resampled to this value; the same value indexes into the stored samples, so changing it after
extraction misaligns lookups. Default 10000.
Stored waveform sample rate in Hz.
Nothing.
Sets the back-off (seconds) subtracted from the audio element duration when clamping a seek, so
seeks never land in/past the last audio packet (the default suits FLAC/Opus frame sizes).
Default 0.1.
Seek back-off from the end of the audio, in seconds.
Nothing.
Enables waveform sample extraction for audio media after it loads (used for waveform display).
Video media is gated separately by setClipVideoStoreSamples. Default false.
Whether to extract and store waveform samples for audio media.
Nothing.
Uploads image clip textures to the GPU during clip init instead of at first draw. Default false.
Whether image textures are uploaded eagerly on init.
Nothing.
Enables lazy loading/unloading of the HTML video source based on playhead proximity (see
setClipVideoDynamicLoadTime). During export this only applies to player-backed clips.
Default false.
Whether video sources are loaded dynamically.
Nothing.
Sets the look-ahead/behind window (seconds) around a clip within which a dynamically loaded
video source is kept loaded. Default 2.
Proximity window in seconds.
Nothing.
Sets the minimum time between filmstrip frames, in seconds. The effective hop is
max(duration / maxFrames, interval) (see setClipVideoFilmstripMaxFrames). Default 1.
Minimum seconds between filmstrip frames.
Nothing.
Restricts filmstrip extraction to keyframes. Much faster, but frames snap to keyframe positions
instead of exact hop times. Default true.
Whether to decode only keyframes for filmstrips.
Nothing.
Caps the number of filmstrip frames per media. Overrides the interval only when
duration / maxFrames exceeds it. Default Number.MAX_VALUE (no cap).
Maximum filmstrip frames per media.
Nothing.
Sets the maximum height (px) of filmstrip thumbnails. Together with
setClipVideoFilmstripMaxWidth this is an aspect-preserving fit box, not an exact size.
Default 80.
Maximum thumbnail height in pixels.
Nothing.
Sets the maximum width (px) of filmstrip thumbnails (aspect-preserving fit box with
setClipVideoFilmstripMaxHeight). Default Number.MAX_VALUE.
Maximum thumbnail width in pixels.
Nothing.
Sets how many filmstrip extractions may run concurrently; additional media wait in a queue.
Default 10.
Maximum concurrent filmstrip workers.
Nothing.
Sets the back-off (seconds) subtracted from the video element duration when clamping a seek.
Default 0 (no back-off).
Seek back-off from the end of the video, in seconds.
Nothing.
Enables filmstrip (thumbnail strip) extraction for video media after load and after media
replacement. Default false.
Whether to extract filmstrips for video media.
Nothing.
Enables waveform sample extraction for video media that has an audio stream. Default false.
Whether to extract and store waveform samples for video media.
Nothing.
Sets the hardwareAcceleration preference passed to the WebCodecs VideoDecoder.
Default PreferredAcceleration.HARDWARE.
Decoder acceleration preference.
Nothing.
Gives each decoding video clip its own FFmpeg demuxer instance (with the media mounted into
it) instead of sharing the main worker's demuxer. Default false.
Whether each video clip demuxes on its own worker.
Nothing.
Uploads decoded VideoFrames with texSubImage2D when the texture size already matches
(otherwise texImage2D). Usually slower for video, hence off by default. Default false.
Whether to upload frames with texSubImage2D.
Nothing.
Decodes video clips with the WebCodecs VideoDecoder during export; when false clips render
through the HTML video element instead. Default true.
Whether to decode with WebCodecs.
Nothing.
Sets the target video bitrate in bits per second. Default 5_000_000.
Target bitrate in bps.
Nothing.
Sets the bitrate control mode (CONSTANT / VARIABLE). The export encoder swaps to the other
mode automatically if the requested one is unsupported. Default BitrateMode.CONSTANT.
Bitrate control mode.
Nothing.
Sets the export video codec, which also picks the container and audio codec (H264 -> mp4/aac,
VP8/VP9 -> webm/ogg). H.264 requires the WebCodecs encoder; with encoderUseWebCodecs = false
it logs an error and falls back to VP8. Default VideoCodec.H264.
Export video codec.
Nothing.
Sets the constant-rate-factor quality (0-51, lower = better) for the wasm FFmpeg encoder path
(encoderUseWebCodecs = false). Ignored by the WebCodecs encoder. Default 23.
CRF value (0-51).
Nothing.
Sets the VP8/VP9 encoder deadline in microseconds for the wasm FFmpeg encoder path
(encoderUseWebCodecs = false). Ignored by the WebCodecs encoder. Default 10000.
Encoder deadline in microseconds.
Nothing.
Forces an explicit RFC 6381 codec string (e.g. avc1.640034 for H.264 High) for the WebCodecs
encoder. It is tried first and verbatim; only if no encoder configuration supports it does the
export warn and fall back to the built-in ladder (Baseline first for H.264). Applies to the active
codec only. Empty string (default) uses the built-in ladder.
RFC 6381 codec string, or "" to use the built-in ladder.
Nothing.
Sets the keyframe interval in frames (not seconds): a keyframe is forced every N encoded
frames. Default 150.
Keyframe interval in frames.
Nothing.
Sets the WebCodecs latencyMode: QUALITY lets the encoder use its best tools (including
B-frames on High/Main H.264 hardware encoders), REALTIME favors throughput.
Default PerformanceMode.QUALITY.
Encoder performance mode.
Nothing.
Sets the hardware-acceleration preference for the export VideoEncoder. The export falls back
to NO_PREFERENCE and then SOFTWARE automatically if the preferred one is unsupported.
Default PreferredAcceleration.HARDWARE.
Encoder acceleration preference.
Nothing.
Requests an alpha channel in the export. Only honored by the wasm FFmpeg encoder path with
VP8/VP9 (webm); the WebCodecs VideoEncoder has no alpha support. Default false.
Whether to export with an alpha channel.
Nothing.
Selects the WebCodecs VideoEncoder (true) or the wasm FFmpeg encoder (false). H.264 is only
available through WebCodecs: disabling WebCodecs while H.264 is selected logs an error and falls
back to VP8. Default true.
Whether to encode with WebCodecs.
Nothing.
Caps the HLS variant picked when loading an .m3u8: the largest RESOLUTION within
[width, height] is used. Default [1920, 1080].
Maximum variant width in pixels.
Maximum variant height in pixels.
Nothing.
Enables background media hashing on a dedicated FFmpeg worker.
When enabled, media using an FFmpeg hash algorithm (XXHash128/XXHash64, see
setMediaHashAlgorithm) becomes READY without waiting for the hash; the hash is computed on a
separate FFmpeg worker queue and lands later (see MediaData::getHashState and the
LIBRARY_MEDIA_HASH_UPDATED event). Library::isProcessing (and therefore
Engine::isSafeToSerialize) reports processing until all pending hashes complete.
SHA256 and a custom dataHashFunction are not affected and always hash inline (backwards
compatibility). Default false, preserving the previous inline-hash behavior.
Whether media hashes should be computed in the background.
Sets the hash used for media identity/deduplication. XXHash128/XXHash64 are computed by
wasm (and eligible for setMediaBackgroundHashing); SHA256 always hashes inline and is
the fallback if an wasm hash fails. Default HashAlgorithmEnum.SHA256.
Media hash algorithm.
Nothing.
Limits the background media hash worker pool size (see setMediaBackgroundHashing).
Each FFmpeg worker instance costs roughly 20MB of memory, so the pool is capped; queued hashes
wait for a free worker. Idle workers are terminated automatically. Default 5.
Maximum concurrent hash workers (minimum 1).
Enables pooled media info probing during media load (see Engine::getMediaInfoService).
When greater than 0, each media load probes its media info on a pool of dedicated FFmpeg
workers instead of the main worker, so parallel media loads don't serialize on the main worker
and its global media info lock. The final media file always lives on the main FFmpeg only.
Each worker instance costs roughly 20MB of memory; idle workers are terminated automatically.
Default 0: pooling disabled, media info is probed on the main FFmpeg worker (previous
behavior).
Maximum concurrent media info workers (0 disables the pool).
Sets the maximum number of pooled media transcode workers (see
Engine::getMediaTranscodeService).
When greater than 0, compatibility transcodes during media load run on a pool of dedicated
FFmpeg workers instead of the main worker, so a long transcode doesn't hold the global media
info lock or queue the main-worker operations of parallel media loads behind it. Additional
transcode requests wait for a free pool slot — only transcodes wait, nothing else. Each worker
instance costs roughly 20MB of memory; idle workers are terminated automatically.
Default 1: one dedicated transcode worker.
Maximum concurrent transcode workers (0 disables the pool and transcodes
on the main FFmpeg worker under the global media info lock — previous behavior).
Generates the export audio mix on a dedicated worker instead of the main FFmpeg worker (also
enables worker-based progress/cancel handling). Default true.
Whether to mix export audio on a dedicated worker.
Nothing.
Sets how long (ms) cancelExport() waits for the render loop to stop before rejecting with a
cancel timeout. Default 10000.
Cancel timeout in milliseconds.
Nothing.
Sets the maximum size in bytes of each output chunk when chunked output is enabled
(setRenderUseChunkedOutput). Default 768 * 1024 * 1024 (768 MB).
Maximum chunk size in bytes.
Nothing.
Adds an extra blend pass on unfiltered sprites to hide diagonal anti-aliasing seams. Only
effective when the display antialias mode is MSAA. Default true.
Whether to apply the diagonal anti-alias fix.
Nothing.
Sets the maximum number of in-flight async readPixels frames during export; beyond it the
render loop sleeps until the queue drains (see setRenderThrottleFactor). Default 10.
Maximum in-flight frame reads.
Nothing.
Sets the export stall watchdog (ms): if GPU sync / frame processing makes no progress for this
long the export fails with a stall error listing the stuck clips. 0 disables the watchdog.
Default 600000 (10 min).
Stall timeout in milliseconds, 0 to disable.
Nothing.
Sets the back-pressure sleep multiplier in ms per queued frame (sleep(factor * queueLength)),
used when the read-pixels or encoder queue is saturated. Default 1.
Milliseconds per queued frame.
Nothing.
Muxes the export into multiple output files of at most setRenderChunkedOutputMaxSize
bytes instead of one blob, for outputs beyond browser blob limits. See
OutputChunkHelper for reassembly. Default false.
Whether to produce chunked output.
Nothing.
Routes Engine.export() through the direct-frames path (VideoFrame straight to the encoder)
instead of the legacy readPixels path. Default true.
Whether to export with direct frames.
Nothing.
Recomputes the subtitle wrap width on display resize, only when word wrap is already enabled
on the subtitle text style. Default false.
Whether the subtitle wrap width follows display resizes.
Nothing.
Scales subtitles by the width ratio when the display is resized (position is always rescaled
regardless). Default false.
Whether subtitles scale with the display.
Nothing.
Enables the built-in FFmpeg compatibility transcode for unsupported media. When false the host
must provide its own transcoder. Default true.
Whether to use the internal transcoder.
Nothing.
Sets how clips are re-laid out when the display is resized: NONE leaves them, PREFER_WIDTH /
PREFER_HEIGHT scale by that axis ratio, BOTH by their product. Default AutoLayoutMode.NONE.
Auto-layout strategy.
Nothing.
StaticdeserializeCreates a settings instance from serialized data.
Serialized settings payload to validate and load.
The deserialized settings instance.
Stores project-wide runtime and export settings used by the engine, renderer, media pipeline, and subtitles.