ffmpeg-wasi¶
Current FFmpeg, as a sandboxed WebAssembly module — for the server, not the browser.
ffmpeg-wasi builds FFmpeg's libav* libraries to wasm32-wasi and drives them with a small
purpose-built engine, producing a single .wasm that runs media pipelines anywhere a WASI
runtime does — designed for wazero, the pure-Go runtime, so Go programs
can transcode/filter/mux embedded, CGO-free, and sandboxed.
It is the reference server-side FFmpeg for WebAssembly: current (not the EOL build), WASI-native (not the browser one), and pure-Go-runnable (no CGO) — by linking the libraries directly and going under the FFmpeg-7.0 CLI threading wall that stops everyone else.
- Tutorials — learn by doing.
- How-to — solve a specific task.
- Explanation — how & why it works.
- Reference — the job-spec vocabulary, artifacts, codec matrix.
Status: released. The first release —
n8.1.2-1— ships current FFmpeg (n8.1.2) as lgpl and gpl WASI modules. The engine transcodes (decode → filter → encode → mux) over a virtual filesystem:probeand the fullfilter_complexprocessop both work today. Design: afmpeg spec 0007.