how audoRa works
audoRa converts video to MP3 entirely inside your browser using WebAssembly. no data ever leaves your device.
architecture
audoRa uses ffmpeg.wasm, a port of ffmpeg compiled to WebAssembly, to transcode media files directly in your browser. the WASM binary is loaded from a CDN on first use and cached by the browser. after that, conversion works offline.
the conversion pipeline works as follows:
- you select a file or provide a direct URL to a media file.
- for uploads: the file is read directly from disk using the File API.
- for URLs: the browser fetches the resource. CORS must allow the request.
- the media data is written to ffmpeg's virtual in-memory filesystem.
- ffmpeg.wasm runs the transcoding with your chosen settings.
- the output MP3 is read back and offered as a download via a Blob URL.
limitations
performance depends on your device
webAssembly runs at near-native speed, but converting large files is CPU-intensive. a 500 MB file may take several minutes on a mobile device.
link mode requires CORS
browsers block cross-origin requests unless the server sends the right headers. most streaming platforms block this. use upload mode for reliable results.
memory usage
both the source and output file are held in memory during conversion. very large files may exhaust available RAM, especially on mobile.
SharedArrayBuffer requirement
ffmpeg.wasm requires SharedArrayBuffer, which requires the page to be cross-origin isolated (COOP/COEP headers). these are set in next.config.ts.
tech stack
Next.js 15
app router, TypeScript
Tailwind CSS v4
styling
ffmpeg.wasm 0.12
audio transcoding
@ffmpeg/util
file helpers
Vitest
unit tests
Vercel
hosting
open source
audoRa is open source. view the code, report issues, or contribute on GitHub.