fluvie_web_encoder 0.1.5
fluvie_web_encoder: ^0.1.5 copied to clipboard
Render Fluvie videos to MP4 fully in the browser with ffmpeg.wasm. Opt-in, so apps that only use the render API or mobile encoders stay light.
Changelog #
The format follows Keep a Changelog and the versions follow Semantic Versioning.
0.1.5 - 2026-06-23 #
Changed #
- Frames are encoded to one PNG each through the engine codec, keeping peak memory bounded to a single frame instead of buffering every raw frame.
0.1.4 - 2026-06-22 #
Added #
WebVideoRendererresolves and paints declared image media (asset, network, memory) in the browser. It builds a web image resolver per render frommediaResolverProvider, or accepts an injectedmediaResolver.- In-browser video
Clipdecoding through WebCodecs.createWebClipDecoderbridges to a page-globalFluvieClipDecoder(a WebCodecsVideoDecoderplus demuxer, the same way ffmpeg.wasm lives behindFluvieFfmpeg);WebVideoRendererwires it into the per-render resolver by default. Without the bridge a clip fails with a clear typed error. downloadBytessaves rendered bytes from the page as a browser download, and theWebVideoRendererconstructor takes anetworkAllowlistto gate network image hosts.- A cleanup failure after a render is reported through
onWarninginstead of masking the real render error.
Changed #
- Breaking:
render'sonProgressnow takes the unifiedRenderProgressCallback(aRenderProgresswith aRenderPhase): per-frame capture progress, then the encoding and complete phases.
0.1.3 - 2026-06-22 #
Lockstep release with the rest of the workspace; no changes to this package.
0.1.2 - 2026-06-21 #
Added #
- On-device audio: mix audio into the in-browser MP4 through the same ffmpeg.wasm argument plan that encodes the captured frames.
0.1.0 - 2026-06-21 #
The first public release.
Added #
WebVideoRenderer: render any FluvieVideoto an MP4 entirely in the browser. It drives Fluvie's deterministic capture loop off-screen into an in-memory sandbox, then encodes the frames with ffmpeg.wasm — which runs the exact same argument plan as the desktop and server paths, so H.264, GIF, and transparent WebM all work with no reimplementation.FluvieWebStage: wrap your app once to give in-browser capture an off-screen surface inside the app's own pipeline;WebVideoRenderercaptures through it by default.WebVideoEncoderover Fluvie'sWasmRuntime, plus theWebCaptureHostseam.- Opt-in in-browser audio: pass
audio: trueto mix and mux aVideo'sAudiotracks with the sameamixplan the desktop uses (looping beds, fades, trims, multi-track).WebAudioMaterializer/BundleWebAudioMaterializerload asset audio throughrootBundleand allowlisted network audio; a suppressibleonWarningfires when aVideohas audio butaudiois off. - Opt-in by design: only apps that depend on this package load the ffmpeg.wasm bridge, so API-only and mobile-only apps stay light.