electron-video-recorder
Capture Electron's window and export as video
Requirements
Install
npm i electron-video-recorder
Use
With Electron's Offscreen API, you can export videos in the background:
const fs = require("fs");
const { capture } = require("electron-video-recorder");
const { app, BrowserWindow } = require("electron");
const win = new BrowserWindow({
webPreferences: { offscreen: true },
show: false,
});
capture(win, { savePath: 'capture.mp4', fps: 25 }).then(handle => {
handle.stop().then(() => {
const buffer = fs.readFileSync('capture.mp4');
win.close();
win.destroy();
});
})
Or with async func:
const fs = require("fs");
const { capture } = require("electron-video-recorder");
const { app, BrowserWindow } = require("electron");
const win = new BrowserWindow({
webPreferences: { offscreen: true },
show: false,
});
const handle = await capture(win, { savePath: 'capture.mp4', fps: 25 });
await new Promise((r) => setTimeout(r, 10000));
const buffer = fs.readFileSync('capture.mp4');
win.close();
win.destroy();
API
capture(win, [options])
class:VideoCapture
Core class of capture, created when call capture(win)
, and return an instance;
VideoCapture.stop()
Manually stop capturing.
This method will automatically be called when BrowserWindow
is closed
or destroyed
const capture = await capture(win, { savePath: "capture.mp4" });
await new Promise(r => setTimeout(r, 5000));
await capture.stop();
Demo
There's an Electron example in project, Clone the project and run:
yarn dev
Reference
This library is referenced from playwright-video