This is a cross-platform media processing library that reads, writes, encodes, and decodes media in both browser and server environments. It supports common container formats including ISOBMFF, Matroska, Ogg, MPEG-TS, and HLS, and handles codec operations through a combination of WebCodecs API and WebAssembly-based encoders. Media is processed in streaming pipelines that maintain constant memory usage and automatically apply backpressure from output speed to all upstream components.
The library distinguishes itself through a plugin-based codec registration system that allows extending supported formats at runtime, a zero-copy native frame adapter that eliminates memory transfers between JavaScript and FFmpeg, and a unified track pairing model for controlling multi-track output compatibility. It provides a full HLS streaming workflow including reading and writing playlists, encrypted segment decryption, multi-bitrate variant generation, and lazy-loading of track data. Hardware acceleration via GPU contexts like VAAPI or VideoToolbox is configurable for encoding, decoding, and filtering. A server-side polyfill extends the same browser APIs to Node.js, Bun, and Deno environments. Broader capabilities cover live media capture and recording from cameras, microphones, and screens, media conversion and transcoding with trimming and filtering, metadata reading and writing, and decoded frame extraction for processing or display.