UNPKG

mfx

Version:

In-browser video editing toolkit, with effects accelerated by WebGL

48 lines (47 loc) 1.75 kB
/// <reference types="dom-webcodecs" /> import { MFXTransformStream } from "./stream"; import { ExtendedVideoFrame } from "./frame"; import { MP4ContainerEncoder } from "./container/mp4/MP4ContainerEncoder"; import { WebMContainerEncoder } from "./container/webM/WebMContainerEncoder"; import { GIFContainerEncoder } from "./container/gif/GIFContainerEncoder"; import type { MFXEncodedChunk } from "./types"; import type { ContainerEncoderConfig } from "./container/encoderConfig"; export { MP4ContainerEncoder, WebMContainerEncoder, GIFContainerEncoder }; /** * @group Encode */ export interface MFXVideoEncoderConfig extends VideoEncoderConfig { /** * Encodes a frame as keyframe every nth second (in seconds) * Set to `Infinity` to disable periodic keyframes * @default 30 */ keyframeEveryNthSecond?: number; } /** * @group Encode */ export declare const encode: ({ mimeType, video, audio, ...config }: { mimeType: string; video?: Omit<MFXVideoEncoderConfig, "codec"> & { stream: MFXTransformStream<any, VideoFrame> | ReadableStream<VideoFrame>; codec?: string; }; audio?: Omit<AudioEncoderConfig, "codec"> & { stream: MFXTransformStream<any, AudioData> | ReadableStream<AudioData>; codec?: string; }; } & Omit<ContainerEncoderConfig, "video" | "audio">) => any; /** * @group Encode */ export declare class MFXVideoEncoder extends MFXTransformStream<ExtendedVideoFrame, MFXEncodedChunk> { get identifier(): string; constructor(config: MFXVideoEncoderConfig); } /** * @group Encode */ export declare class MFXAudioEncoder extends MFXTransformStream<AudioData, MFXEncodedChunk> { get identifier(): string; constructor(config: AudioEncoderConfig); }