Decode WebM audio (Opus and Vorbis) to PCM float samples. EBML demuxer in pure JS, codec decoding via WASM.
Part of audio-decode.
npm i @audio/decode-webm
import decode from '@audio/decode-webm'
let { channelData, sampleRate } = await decode(webmBuffer)import { decoder } from '@audio/decode-webm'
let dec = await decoder()
let result = await dec.decode(chunk)
let flushed = await dec.flush()
dec.free()Whole-file decode. Accepts Uint8Array or ArrayBuffer.
Creates a decoder instance.
dec.decode(data)— decode chunk, returnsPromise<AudioData>dec.flush()— flush remaining datadec.free()— release resources
Note: decode() and flush() are async (unlike the sync PCM decoders) because Opus decoding happens in WASM.
- Opus — via opus-decoder
- Vorbis — via @wasm-audio-decoders/ogg-vorbis (raw frames wrapped in OGG pages)
MIT