headless-screen-recorder
Version:
A Puppeteer plugin optimized for headless Chrome using HeadlessExperimental.beginFrame API for reliable video capture with proper color correction
41 lines (40 loc) • 1.29 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { EventEmitter } from 'events';
import { Writable } from 'stream';
import { pageScreenFrame, VideoOptions } from './pageVideoStreamTypes';
/**
* @ignore
*/
export default class PageVideoStreamWriter extends EventEmitter {
private readonly screenLimit;
private screenCastFrames;
duration: string;
frameGain: number;
frameLoss: number;
private status;
private options;
private videoMediatorStream;
private writerPromise;
constructor(destinationSource: string | Writable, options?: VideoOptions);
private get videoFrameSize();
private get autopad();
private getFfmpegPath;
private getDestinationPathExtension;
private configureFFmPegPath;
private isWritableStream;
private configureVideoFile;
private configureVideoWritableStream;
private getOutputOption;
private addVideoMetadata;
private getDestinationStream;
private handleWriteStreamError;
private findSlot;
insert(frame: pageScreenFrame): void;
private trimFrame;
private processFrameBeforeWrite;
write(data: Buffer, durationSeconds?: number): void;
private drainFrames;
stop(stoppedTime?: number): Promise<boolean>;
}