RecordCanvas is SIMPLE-WEB-VIDEO-CREATOR with basic functionallity. Based on MediaRecorder API Javascript - Minimum ECMA6
Script type module
.
First install node modules with npm i
.
Build library (js text plane) with:
npm run build
Take a look at ./build/compositor.lib.js
Install command:
npm i record-canvas
Source: https://github.com/zlatnaspirala/record-canvas
- videoDuration: value in Seconds
- injectCanvas: represent canvas id => "canvas", other way for injectCanvas is canvas Dom like object.
import { RecordCanvas } from "compositor";
// import { RecordCanvas } from "./src/index";
function attachFunction() {
const mainOption = {
injectCanvas: "canvas",
frameRequestRate: 30,
videoDuration: 10
};
let MyRecorder = new RecordCanvas(mainOption);
window.removeEventListener("click", attachFunction);
MyRecorder.run();
MyRecorder.presentationPreview();
console.info("Test instance MyRecorder => " + MyRecorder);
}
window.addEventListener("click", attachFunction);
Inputs for any-canvas-example.js
// If you need canvas from iframe:
injectCanvas = recordCanvasIframe.contentWindow.document.getElementById('canvas');
let mainOption = {
injectCanvas: injectCanvas,
// injectCanvas: "canvas",
frameRequestRate: 30,
videoDuration: videoDuration,
outputFilename: "record-canvas.mp4",
mineType: "video/mp4",
resolutions: resolutionsDom.selectedOptions[0].innerText
};
New import export definition:
import RC from "record-canvas";
let options = {
// injectCanvas: "orId",
injectCanvas: document.getElementsByTagName("canvas")[0],
frameRequestRate: 30,
videoDuration: 10,
outputFilename: "record-canvas.mp4",
mineType: "video/mp4",
resolutions: '800x600'
}
this.recordCanvas = new (RC as any).RecordCanvas(this.options);
Add input options: - No generic audio context - No user request needed for download
To combine any source. To be reusable in any case.
INPUT PARAMS:
-> Video duration
-> External any canvas work or inline ctx
-> Choose audio [GENERIC SOUND | AUDIO FILE | MIC]
WEBCAM |
VIDEO FILE |
CANVAS
=> MP4
GENERIC SOUND |
AUDIO FILE |
MIC