UNPKG

@henteko/kumiki

Version:

A video generation tool that creates videos from JSON configurations

111 lines 3.37 kB
export interface FFmpegOptions { input: string; output: string; additionalArgs?: string[]; onProgress?: (progress: number) => void; } export interface ConcatOptions { inputs: string[]; output: string; onProgress?: (progress: number) => void; } export interface ImageToVideoOptions { input: string; output: string; duration: number; fps: number; resolution: string; onProgress?: (progress: number) => void; } export interface VideoTrimOptions { input: string; output: string; start: number; duration: number; resolution?: string; onProgress?: (progress: number) => void; } export declare class FFmpegService { private static instance; private constructor(); /** * Get singleton instance */ static getInstance(): FFmpegService; /** * Check if FFmpeg is installed */ checkInstallation(): Promise<boolean>; /** * Convert image to video */ imageToVideo(options: ImageToVideoOptions): Promise<void>; /** * Trim video */ trimVideo(options: VideoTrimOptions): Promise<void>; /** * Concatenate videos */ concatenate(options: ConcatOptions): Promise<void>; /** * Helper method to concatenate videos using concat list */ private concatenateWithList; /** * Apply fade transition between two videos */ fadeTransition(video1: string, video2: string, output: string, duration: number): Promise<void>; /** * Apply wipe transition between two videos */ wipeTransition(video1: string, video2: string, output: string, duration: number, direction?: 'left' | 'right' | 'up' | 'down'): Promise<void>; /** * Apply dissolve transition between two videos */ dissolveTransition(video1: string, video2: string, output: string, duration: number): Promise<void>; /** * Add audio to video */ addAudio(videoPath: string, audioPath: string, outputPath: string, volume?: number): Promise<void>; /** * Mix background music with existing audio (e.g., narration) */ mixBackgroundMusic(videoPath: string, musicPath: string, outputPath: string, options?: { musicVolume?: number; existingAudioVolume?: number; fadeIn?: number; fadeOut?: number; }): Promise<void>; /** * Add narration track to video with existing audio */ addNarrationTrack(videoPath: string, narrationPath: string, outputPath: string, options?: { narrationVolume?: number; bgmVolume?: number; delay?: number; fadeIn?: number; fadeOut?: number; }): Promise<void>; /** * Add audio to video with fade in/out effects */ addAudioWithFade(videoPath: string, audioPath: string, outputPath: string, volume?: number, fadeIn?: number, fadeOut?: number): Promise<void>; /** * Execute FFmpeg command */ execute(command: string, args: string[], onProgress?: (progress: number) => void, stdin?: string): Promise<void>; /** * Check if video has audio stream */ hasAudioStream(videoPath: string): Promise<boolean>; /** * Get video duration in seconds */ private getVideoDuration; /** * Ensure output directory exists */ private ensureOutputDirectory; } //# sourceMappingURL=ffmpeg.d.ts.map