1.0.0 • Published 3 years ago
wasm-codecs v1.0.0
Wasm libde265 and libopus decoders for web with webaudio and webgl players
This combines both libopus and libde265 into one wasm file so that they can share
Usage
const { codecs, getWasm, WebAudio, WebGLPlayer } = require('wasm-codecs')
//promise based load because wasm is async (promise based)
codecs(getWasm()).then(({libde265, libopus}) => {
const video = libde265.decoder()
const videoOut = WebGLPlayer(canvas)
video.onDecodedFrame = (y, u, v) => videoOut.renderFrame(y, u, v, video.img.width, video.img.height)
const audio = libopus.decoder()
const audioOut = WebAudio(48e3)
audio.onDecode = samples => audioOut.play(samples)
const onVideoInput = chunk => video.push(chunk.buffer)
const onMicInput = chunk => audio.push(chunk.buffer)
})
Credits
https://github.com/AnthumChris/opus-stream-decoder
https://github.com/strukturag/libde265
1.0.0
3 years ago