1.0.0 • Published 3 years ago

wasm-codecs v1.0.0

Weekly downloads
4
License
ISC
Repository
github
Last release
3 years ago

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

https://github.com/strukturag/libde265.js

https://github.com/samirkumardas/pcm-player

1.0.0

3 years ago