Record a canvas to webm video without effecting rendering performance.
NOTE: Only tested it with Chrome and should work fine with Firefox
Blog article: https://smusamashah.github.io/blog/2018/10/26/CanvasRecorder
Create a recorder
const canvas = document.getElementById('animation');
const recorder = new CanvasRecorder(canvas);// optional: bits per second for video quality, defaults to 2.5Mbps
const recorder = new CanvasRecorder(canvas, 4500000);Start recording
recorder.start();Stop recording
recorder.stop();Save/download recording
recorder.save();
// Save with given file name
recorder.save('busy_motion.webm');It is based on this WebRTC sample. Captures MediaStream from a canvas element and records it with MediaRecorder.