← Files Cecil-IA Labs FFmpegARCHIVED FILE
dist/pipeline/types.d.ts
4.14 KB · Oct 4, 2026 · 12:35 UTC
import type { HardwareMode } from "../hardware/types.js";
import type { MediaFit } from "../media/fit.js";
import type { MediaInfo, ToolkitWarning, TrimMode } from "../types/contracts.js";
import type { RestoreProfile, SpeedAudioMode, VideoOutputFormat } from "../video/types.js";
import type { ConversionFormat } from "../conversion/types.js";
export interface PipelineTrimStep {
trim: {
start?: number | undefined;
end?: number | undefined;
duration?: number | undefined;
mode?: TrimMode | undefined;
};
}
export interface PipelineSpeedStep {
speed: {
factor: number;
audio?: SpeedAudioMode | undefined;
};
}
export interface PipelineResizeStep {
resize: {
width: number;
height: number;
fit?: MediaFit | undefined;
background?: string | undefined;
profile?: RestoreProfile | undefined;
fps?: number | undefined;
crf?: number | undefined;
preset?: string | undefined;
to?: VideoOutputFormat | undefined;
hardware?: HardwareMode | undefined;
hardwareDevice?: string | undefined;
hardwareStrict?: boolean | undefined;
};
}
export interface PipelineNormalizeStep {
normalize: {
width?: number | undefined;
height?: number | undefined;
fps?: number | undefined;
pixelFormat?: string | undefined;
sampleRate?: number | undefined;
channels?: number | undefined;
};
}
export interface PipelineAudioStep {
audio: {
normalize: true;
sampleRate?: number | undefined;
channels?: number | undefined;
};
}
export interface PipelineConvertStep {
convert: {
to: ConversionFormat;
fps?: number | undefined;
width?: number | undefined;
height?: number | undefined;
fit?: MediaFit | undefined;
background?: string | undefined;
quality?: number | undefined;
maxColors?: number | undefined;
loop?: number | undefined;
audioBitrate?: string | undefined;
sampleRate?: number | undefined;
channels?: number | undefined;
hardware?: HardwareMode | undefined;
hardwareDevice?: string | undefined;
hardwareStrict?: boolean | undefined;
};
}
export interface PipelinePresetStep {
preset: string;
}
export type ConcretePipelineStep = PipelineTrimStep | PipelineSpeedStep | PipelineResizeStep | PipelineNormalizeStep | PipelineAudioStep | PipelineConvertStep;
export type PipelineStep = PipelineTrimStep | PipelineSpeedStep | PipelineResizeStep | PipelineNormalizeStep | PipelineAudioStep | PipelineConvertStep | PipelinePresetStep;
export interface PipelineOutput {
path: string;
codec?: "h264" | "vp9" | undefined;
}
export interface PipelineDocument {
version: 1;
input: string;
presets: Record<string, PipelineStep[]>;
steps: PipelineStep[];
output: PipelineOutput;
}
export interface LoadedPipeline {
file: string;
baseDirectory: string;
document: PipelineDocument;
}
export interface PipelineRuntimeOptions {
/** Optional final-output override. Relative paths resolve from the pipeline file directory. */
output?: string | undefined;
overwrite?: boolean | undefined;
dryRun?: boolean | undefined;
verbose?: boolean | undefined;
ffmpegPath?: string | undefined;
ffprobePath?: string | undefined;
signal?: AbortSignal | undefined;
keepTemp?: boolean | undefined;
}
export type PipelineStepKind = "trim" | "speed" | "resize" | "normalize" | "audio" | "convert";
export interface PipelineStepReport {
index: number;
kind: PipelineStepKind;
input: string;
output: string;
planned: boolean;
invocation?: string | undefined;
durationMs?: number | undefined;
warnings: ToolkitWarning[];
details: Record<string, unknown>;
}
export interface PipelineReport {
operation: "pipeline";
file: string;
source: string;
output: string;
planned: boolean;
stepCount: number;
steps: PipelineStepReport[];
warnings: ToolkitWarning[];
outputMedia?: MediaInfo | undefined;
workspace?: string | undefined;
}
//# sourceMappingURL=types.d.ts.mapSHA-256: 561fdb6081edb2f8eed3d23af78a01a6e5d180e4bfd5bfc98edf748e9c4c1aed