@diffusionstudio/core-v4
Version:
A fast, browser based video compositing engine powered by WebCodecs
35 lines (34 loc) • 1.41 kB
TypeScript
import { WriteStreamCallback } from './buffer';
import { Composition } from '../composition';
import { EncoderConfig } from './interfaces';
import { EncoderProgress, ExportResult } from './types';
export declare class Encoder {
private composition;
private renderer?;
private config;
private audioContext?;
private sinkNode?;
private audioWorkletUrl?;
onProgress?: (progress: EncoderProgress) => void;
/**
* Create a new audio and video encoder and multiplex the result
* using a mp4 container
* @param composition The composition to render
* @param config Configure the output
* @example
* ```
* const blob = await new Encoder(composition).render();
* ```
*/
constructor(composition: Composition, config?: EncoderConfig);
private canceled;
cancel(): void;
/**
* Export the specified composition
* @throws DOMException if the export has been aborted
*/
render(target?: WriteStreamCallback | FileSystemFileHandle | WritableStream | string): Promise<ExportResult>;
audioCodecs(): Promise<("aac" | "opus" | "mp3" | "vorbis" | "flac" | "pcm-s16" | "pcm-s16be" | "pcm-s24" | "pcm-s24be" | "pcm-s32" | "pcm-s32be" | "pcm-f32" | "pcm-f32be" | "pcm-f64" | "pcm-f64be" | "pcm-u8" | "pcm-s8" | "ulaw" | "alaw")[]>;
videoCodecs(): Promise<("avc" | "hevc" | "vp9" | "av1" | "vp8")[]>;
private log;
}