UNPKG

@diffusionstudio/core-v4

Version:

A fast, browser based video compositing engine powered by WebCodecs

35 lines (34 loc) 1.41 kB
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; }