UNPKG

@framekit/webm-writer-esm

Version:
62 lines (48 loc) • 2.03 kB
# WebM Writer ESM This project is a fork of [webm-writer-js][]. The library can convert browser canvas frames into WebM movies. This project adds support for native ESModule exports, WebCodec's EncodedVideoChunks, and the VP9 video codec (with WebCodecs). ## Compatibility Canvas frames are converted to WebM frames by using [canvas.`toDataUrl('image/webp')`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL) which currently [only Firefox and Chromium-based browsers support](https://caniuse.com/mdn-api_htmlcanvaselement_todataurl_type_parameter_webp). ## Installing and Usage ### In Browser WebM Writer ESM can be included through a script tag in browser through a CDN: ``` <script src="https://unpkg.com/@framekit/webm-writer-esm/"></script> ``` Or if locally downloaded: ``` <script src="path/to/dist/webm-writer.js"></script> ``` The library is exported to the `WebMWriter` object. ### In Node From the command-line: ``` npm install @framekit/webm-writer-esm ``` Then in your files: ```js import { WebMWriter } from '@framekit/webm-writer-esm'; ``` ### Usage As an Encoder: ```js var writer = new WebMWriter({ quality: 0.95, // (Encoder Only) Image Quality from 0.0 to 0.99999, 1 is not supported frameRate: 60 // Frames Per Second }); async function run() { for (let i = 0; i < 300; i++) { writer.addFrame(canvas); } var blob = await writer.complete(); // do something with `blob`; } run(); ``` ### Changes from [webm-writer-js][] * Reformatting * Conversion to ES Modules (and bundling via rollup) * Adds the function `addChunk` that can take EncodedVideoChunks provided by [the WebCodecs API](https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API) * Adds support for the VP9 Codec (with WebCodecs) ### License This project is licensed under the BSD 3-Clause License. The [project this is forked from][webm-writer-js] was licensed under [WTFPLv2](https://en.wikipedia.org/wiki/WTFPL). [webm-writer-js]: https://github.com/thenickdude/webm-writer-js