ffmpeg-stream-manager
Version:
🎥 A powerful TypeScript library for managing multiple simultaneous RTMP streams using FFmpeg. Perfect for streaming to platforms like YouTube Live, Twitch, and others.
44 lines • 1.5 kB
TypeScript
import { EventEmitter } from 'events';
import { StreamConfig, StreamState, FFmpegLog } from '../types';
export interface StreamProcessEvents {
'state-change': (state: StreamState) => void;
'log': (log: FFmpegLog) => void;
'error': (error: Error) => void;
'restart': () => void;
}
export declare class StreamProcess extends EventEmitter {
private config;
private ffmpegProcess;
private _state;
private _startTime;
private _restartCount;
private _lastError;
private restartTimeout;
private autoRestart;
private restartDelay;
constructor(config: StreamConfig, options?: {
autoRestart?: boolean;
restartDelay?: number;
});
on<K extends keyof StreamProcessEvents>(event: K, listener: StreamProcessEvents[K]): this;
emit<K extends keyof StreamProcessEvents>(event: K, ...args: Parameters<StreamProcessEvents[K]>): boolean;
get state(): StreamState;
get startTime(): Date | undefined;
get uptime(): number;
get restartCount(): number;
get lastError(): string | undefined;
get pid(): number | undefined;
start(): Promise<void>;
stop(): Promise<void>;
restart(): Promise<void>;
updateConfig(newConfig: StreamConfig): void;
getConfig(): StreamConfig;
private setState;
private setupProcessHandlers;
private isErrorMessage;
private scheduleRestart;
private clearRestartTimeout;
private log;
destroy(): void;
}
//# sourceMappingURL=stream-process.d.ts.map