@omnimedia/omnitool
Version:
open source video processing tools
39 lines (38 loc) • 1.46 kB
TypeScript
import { Thread } from "@e280/comrade";
import { type StreamTargetChunk } from "mediabunny";
import { Machina } from "./parts/machina.js";
import { Compositor } from "./parts/compositor.js";
import { DecoderInput, DriverSchematic, Composition, EncoderInput, DecoderSource } from "./fns/schematic.js";
export type DriverOptions = {
workerUrl: URL | string;
};
export declare class Driver {
machina: Machina;
thread: Thread<DriverSchematic>;
compositor: Compositor;
static setup(options?: DriverOptions): Promise<Driver>;
constructor(machina: Machina, thread: Thread<DriverSchematic>, compositor: Compositor);
hello(): Promise<void>;
getAudioDuration(source: DecoderSource): Promise<number>;
getVideoDuration(source: DecoderSource): Promise<number | undefined>;
decodeVideo(input: DecoderInput): {
readable: ReadableStream<VideoFrame>;
/**
* use this to stop decoding (premature interruption)
* */
cancel(): void;
};
decodeAudio(input: DecoderInput): {
readable: ReadableStream<AudioData>;
/**
* use this to stop decoding (premature interruption)
* */
cancel(): void;
};
encode({ audio, video, config }: EncoderInput): {
readable: ReadableStream<StreamTargetChunk>;
done: Promise<void>;
};
composite(composition: Composition): Promise<VideoFrame>;
resize(width: number, height: number): void;
}