/** * FFmpeg Wrapper - Direct FFmpeg/FFprobe execution via child_process * Replaces deprecated fluent-ffmpeg package * * @module @plyaz/storage/utils/ffmpegWrapper */ import type { FFprobeData, FFmpegProgress, FFmpegOptions, ScreenshotOptions } from '@plyaz/types/storage'; /** * FFmpeg wrapper class - provides fluent-ffmpeg-like API using child_process */ export declare class FFmpegWrapper { private ffmpegPath; private ffprobePath; /** * Set FFmpeg binary path */ setFfmpegPath(path: string): void; /** * Set FFprobe binary path */ setFfprobePath(path: string): void; /** * Extract metadata using ffprobe */ ffprobe(inputPath: string): Promise; /** * Execute FFmpeg command */ execute(options: FFmpegOptions): Promise; /** * Generate screenshots/thumbnails */ screenshots(inputPath: string, options: ScreenshotOptions): Promise; /** * Transcode video */ transcode(options: { input: string; output: string; size?: string; videoBitrate?: string; videoCodec?: string; audioCodec?: string; audioBitrate?: string; format?: string; onProgress?: (progress: FFmpegProgress) => void; onStart?: (command: string) => void; }): Promise; /** * Generate HLS stream */ generateHLS(options: { input: string; output: string; segmentDuration?: number; onStart?: (command: string) => void; }): Promise; } /** * Global FFmpeg wrapper instance */ export declare const ffmpegWrapper: FFmpegWrapper; /** * Set FFmpeg binary path */ export declare function setFfmpegPath(path: string): void; /** * Set FFprobe binary path */ export declare function setFfprobePath(path: string): void; /** * Execute ffprobe */ export declare function ffprobe(inputPath: string): Promise;