Skip to main content
Echoryte

Local media tool

Convert audio locally with WebAssembly

Convert a conservatively sized audio file to WAV or MP3 in a local WebAssembly worker, loaded only after you start conversion.

Go to local workbench
Execution
This browser
Output
Local WAV or MP3 audio file
Content review
2026-07-20

Browser workbench · no upload

Work on this device

File content stays inside this browser tab.

Preflight ceiling

32 MB

Fixed ceiling · no device-based uplift

The pinned single-thread engine loads from this origin only after Start. The ceiling reduces obvious memory risk; media over 30 minutes, output near 64 MB, or work beyond two minutes is stopped instead of returning a partial download.

Engine licensing: third-party notice · GPL v2 · exact corresponding source

The engine is requested only after Start.

This converter uses the single-thread ffmpeg.wasm core inside a browser worker. The roughly 31 MB engine is fetched from this site only after an eligible file is selected and conversion starts; the media bytes are copied into the worker file system and never posted to an application endpoint.

Workflow

A short, inspectable path

  1. 01Select an audio file no larger than the fixed 32 MB ceiling and choose WAV or MP3.
  2. 02Start conversion to load the pinned same-origin engine and process the bytes in its worker.
  3. 03Cancel if needed; otherwise download the result, verify its full duration, and retain the original as the preservation copy.

Fixed input, duration, output, and time bounds

The 32 MB input limit does not rise when navigator.deviceMemory reports a larger device. Before encoding, a bounded local duration probe must return a finite duration no longer than 30 minutes. FFmpeg receives a 64 MB output bound and a two-minute execution deadline; reaching the output boundary is treated as failure so a truncated file is never offered as complete. Cancel terminates the worker and releases its in-memory file system.

Choose an output for the next step

WAV output is deliberately normalized to 16 kHz mono PCM so an input cannot silently expand into an unbounded multichannel, high-rate file. MP3 quality level 4 is smaller and convenient for listening. Both are derived copies: keep the original recording, verify the complete duration after download, and remember that lossy conversion discards information.

Local-data boundary

Media bytes are written only to ffmpeg.wasm’s in-memory file system. Same-origin JavaScript and WASM engine requests contain no selected-file body.

Limits worth keeping visible

  • Browser conversion is memory-intensive because input and output are copied. Until a reviewed browser matrix exists, every device receives the same fail-closed 32 MB input ceiling; it is not a compatibility or speed guarantee.
  • The tool rejects media over 30 minutes, stops execution after two minutes, caps encoded output at 64 MB, and produces WAV only as 16 kHz mono PCM. Codec support still depends on the pinned build.

Reviewed references