@framekit/webm-writer-esm
Version:
WebM Encoder for Canvas Frames
62 lines (48 loc) • 2.03 kB
Markdown
# 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