Record Screen
Screen recording function using FFmpeg.
Defaults to usingx11grab
, but also supports other input formats.
Contents
Requirements
This is a thin wrapper around FFmpeg and has no other dependencies.
Installation
npm install record-screen
Usage
x11grab
Desktop screen recording using
the x11grab
input device:
const recordScreen = const recording = recordingpromise // As an example, stop the screen recording after 5 seconds:
mjpeg
Record an MJPEG stream:
const recordScreen = const recording = recordingpromise // As an example, stop the screen recording after 5 seconds:
Options
const defaultOptions = // shared options: loglevel: undefined // Log level, defaults to "info" inputFormat: 'x11grab' // Input format, use 'mjpeg' to record an MJPEG stream resolution: undefined // Display resolution (WIDTHxHEIGHT) fps: 15 // Frames per second to record from input videoFilter: undefined // Video filters to apply, e.g. 'crop=480:300:960:600' videoCodec: undefined // Video codec, defaults to libx264 for mp4 output pixelFormat: 'yuv420p' // Output pixel format rotate: undefined // Rotate metadata, set to 90 to rotate left by 90° hostname: 'localhost' // Server hostname // x11grab options: display: '0' // X11 server display // options ignored for x11grab: protocol: 'http' // Server protocol username: undefined // Basic auth username password: undefined // Basic auth password port: 9000 // Server port pathname: undefined // URL path component search: undefined // URL query parameter
Testing
- Start Docker.
- Install development dependencies:npm install
- Run the tests:npm test
License
Released under the MIT license.