Skip to content

wave-charts/electron-capturer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Capture Electron's window and export as video

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published