UNPKG

ffmpeg-progress-wrapper

Version:

A simple wrapper that helps with determinng the progress of the ffmpeg conversion

78 lines (77 loc) 2.28 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { ChildProcess } from "child_process"; import { Readable } from "stream"; import ProcessEnv = NodeJS.ProcessEnv; export * from "./error"; export interface FFMpegProgressOptions { cmd?: string; cwd?: string; env?: ProcessEnv; duration?: number; hideFFConfig?: boolean; maxMemory?: number; } export interface IFFMpegFileDetails { duration?: number; bitrate?: number; start?: number; resolution?: { width: number; height: number; }; fps?: number; } export interface IFFMpegProgressData { speed: number | null; eta: number | null; time: number | null; progress: number | null; drop: number; dup: number; fps: number | null; frame: number | null; quality: number[][]; psnr: { y: number | null; u: number | null; v: number | null; all: number | null; }[][]; size: number | null; bitrate: number | null; } export interface IFFMpegProgress { on(event: 'end', listener: (code: number | undefined, signal: string | undefined) => void): this; on(event: 'details', listener: (file: IFFMpegFileDetails) => void): this; on(event: 'progress', listener: (p: IFFMpegProgressData) => void): this; on(event: 'raw', listener: (text: string) => void): this; } export declare class FFMpegProgress extends EventEmitter implements IFFMpegProgress { private _args; private _process; private _details; private _metadataDuration; private _stderr; private _isKilledByUser; private _outOfMemory; private _vitalsTimer; private _vitalsMemory; readonly options: FFMpegProgressOptions; constructor(args: string[], options?: FFMpegProgressOptions); private _progressCheck; private _checkVitals; kill(signal?: string): void; stop(): void; readonly details: IFFMpegFileDetails; readonly stderrOutput: string; readonly stdout: Readable; readonly process: ChildProcess; readonly args: string[]; onDone(): Promise<string>; onDetails(): Promise<IFFMpegFileDetails>; private processMetadataDuration; private processInitialOutput; private processProgress; private processOutput; }