0.0.5 • Published 2 years ago

electron-video-recorder v0.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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 });
// Set up your custom stop event
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