ckv
v1.0.2
Published
CKV - JavaScript library for displaying chromakey videos in the browser
Downloads
10
Maintainers
Readme
Javascript library for processing chromakey video in browser
Installation
NPM
npm install ckv
Usage
ES6 modules
import CKV from ckv;
CommonJS
const CKV = require('ckv');
Example
import CKV from ckv;
const ckVideo = new CKV('.selector-where-show', 'path/to/video.mp4', {filter: 'Green', loop: true, mute: true});
ckVideo.play().then(() => 'do something');
API
CKV(selector: string, url: string, options?: ICKVOptions)
- selector - HTMLElement where the filtered video will be displayed
- url - path to video
- options(optional):
interface ICKVOptions {
loop?: boolean; // playback loop. Default: false
mute?: boolean; // playback mute. Default: false
showOriginalIn?: string; // selector where to show the original video. Default: null
filter?: string; // supports: ['Green']. Default: 'Green'
}
Methods
interface ICKV {
play(): Promise<void>;
stop(): void;
newVideo(url: string, options?: ICKVOptions): void;
setVolume(num: number): void;
seek(num: number): void;
destroy(): void;
}
.play(): Promise
Starts playback
.stop(): void
Stop playback
.newVideo(url: string, options?: ICKVOptions): void
Installing a new video. Need to run again
.setVolume(num: number): void
num - range [0, 1]. Required option mute: false
.seek(num: number): void
num - range [0, 1]. Video rewind
.destroy(): void
Removes all event listeners and elements
const ckVideo = new CKV('.selector-where-show', 'path/to/video.mp4', {
filter: 'Green',
loop: true,
mute: true,
});
ckVideo.destroy();
ckVideo = null;
Browser support
| Chrome | Safari | Edge | Firefox | Opera | | ------ | ------ | ---- | ------- | ----- | | 33+ | 7.1+ | 12+ | 29+ | 20+ |
How does it work
Uses 2d context(CPU)(temporarily). Up to 2,073,600 (1920 * 1080) pixels are processed in the main thread. If more, then it breaks into cycles of 1,036,800.
To do:
- Shader processing(GPU)
- adding custom filters