Skip to main content
Masterselects offers four export modes to cover everything from fast browser delivery to professional codec interchange.

Export modes

The default and fastest export path.
Pipeline: MP4Box → WebCodecs Decoder → GPU Compositor → VideoEncoder
  • GPU canvas frames are captured as new VideoFrame(offscreenCanvas) — zero-copy, no readPixels(), no staging buffers.
  • Dedicated WebCodecs players are created per clip with parallel decoding for multi-clip timelines.
  • Automatically extracts avcC/hvcC codec descriptions for H.264 and H.265.
  • Falls back to HTMLVideo Precise mode if the selected codec is unsupported (for example, AV1 on some platforms).
Use WebCodecs Fast for most exports. It is the fastest path and produces identical output to Precise mode.

HTMLVideo Precise

Frame-accurate export via HTMLVideoElement.
Pipeline: HTMLVideoElement → requestVideoFrameCallback → GPU Compositor → VideoEncoder
  • Handles all codec types supported by the browser.
  • More compatible with complex timelines and nested compositions.
  • Slower than WebCodecs Fast, but more reliable for edge cases.

FFmpeg WASM (experimental)

Professional codec support via a browser-compiled FFmpeg build.
  • Supports ProRes, DNxHR, FFV1, Ut Video, and MJPEG.
  • Loads on demand (~20MB download the first time).
  • Requires SharedArrayBuffer headers (COOP/COEP).
  • Single-threaded ASYNCIFY build — significantly slower than the WebCodecs path.
FFmpeg WASM export is a work in progress. It is suitable for testing professional codec output but is not recommended for production use. HAP is not available (requires the snappy library, which is incompatible with Emscripten).

FCPXML

Exports your timeline as a Final Cut Pro XML file.
  • Compatible with DaVinci Resolve, Premiere Pro, and other NLEs that accept FCPXML.
  • Preserves clip positions, durations, and track layout.
  • Useful for roundtripping between applications.

Output formats

Containers and codecs

CodecContainerNotes
H.264MP4Universal compatibility
H.265¹MP4HDR support, smaller files
VP9WebMAlpha channel support
AV1MP4 / WebMBest compression
¹ H.265 encode depends on OS and hardware — full support on Windows, partial on macOS and Linux.

Audio

CodecContainer
AACMP4
OpusWebM
Audio is automatically encoded to AAC for MP4 exports and Opus for WebM exports.

Export workflow

1

Open the Export Panel

Go to View → Export Panel or find it in the dock tabs.
2

Choose an export mode

Select WebCodecs Fast, HTMLVideo Precise, FFmpeg WASM, or FCPXML from the mode selector.
3

Select a codec and resolution

Pick a codec, resolution preset (4K, 1080p, 720p, 480p, or custom), and frame rate. Set a quality preset or enter a custom bitrate.
4

Set the time range

Export the full composition or use In/Out markers to export a specific range. Set markers with I (in) and O (out).
5

Export

Click Export. A progress bar shows frame count and percentage. Click Cancel at any time to stop.

Resolution presets

PresetResolution
4K3840 × 2160
1080p1920 × 1080
720p1280 × 720
480p854 × 480
CustomUser-defined

Quality presets

QualityBitrate
Low5 Mbps
Medium15 Mbps
High25 Mbps
Maximum35 Mbps

Parallel decoding

For exports with multiple clips, ParallelDecodeManager creates one dedicated decoder per clip and fills a 60-frame buffer ahead of the export frame. This prevents stalls when the encoder is faster than a single decoder.

PNG sequence and single frame export

  • PNG sequence: Export each frame as an individual PNG file.
  • Single frame: Position the playhead, then click Render Frame to download the current frame as a PNG.

Audio export

Audio export is enabled by default. When included:
  1. Audio is decoded from all source clips.
  2. Speed and pitch changes are applied via SoundTouch.
  3. EQ and volume effects with keyframe automation are rendered.
  4. All tracks are mixed, respecting mute and solo settings.
  5. The mix is encoded to AAC-LC (MP4) or Opus (WebM).
Enable Normalize to peak-normalize the output and prevent clipping.

Build docs developers (and LLMs) love