UNPKG

frameflow

Version:

Audio/Video stream processing library for JavaScript world

71 lines (70 loc) 2.47 kB
/// <reference types="dom-webcodecs" /> import { ModuleType as FF, FrameInfo, StreamInfo, DataFormat } from './types/ffmpeg'; declare type WebPacket = EncodedVideoChunk | EncodedAudioChunk; declare type WebFrame = VideoFrame | AudioData; declare type WebEncoder = VideoEncoder | AudioEncoder; declare type WebDecoder = VideoDecoder | AudioDecoder; export declare class Packet { FFPacket?: FF['Packet']; WebPacket?: WebPacket; dts: number; mediaType: 'video' | 'audio'; constructor(pkt: FF['Packet'] | WebPacket, dts: number, mediaType: 'video' | 'audio'); get size(): number; get duration(): number; toFF(): import("./types/ffmpeg").Packet; toWeb(): WebPacket; close(): void; } export declare class Frame { #private; FFFrame?: FF['Frame']; WebFrame?: WebFrame; constructor(frame: FF['Frame'] | WebFrame | undefined, name: string); get name(): string; get pts(): number; get frameInfo(): FrameInfo | { format: string; height: number; width: number; sampleRate: number; channels: number; channelLayout: string; }; toFF(): Promise<import("./types/ffmpeg").Frame>; toWeb(frameRate: number): WebFrame; clone(): Frame; close(): void; } export declare class Encoder { #private; encoder: FF['Encoder'] | WebEncoder; streamInfo: StreamInfo; outputs: WebPacket[]; /** * @param useWebCodecs check `Encoder.isWebCodecsSupported` before contructor if `true` */ constructor(streamInfo: StreamInfo, useWebCodecs: boolean, muxFormat: string); static isWebCodecsSupported(streamInfo: StreamInfo): Promise<boolean>; toSupportedFormat(dataFormat: DataFormat): DataFormat; get FFEncoder(): import("./types/ffmpeg").Encoder | undefined; encode(frame: Frame): Promise<Packet[]>; flush(): Promise<Packet[]>; close(): void; } export declare class Decoder { #private; decoder: FF['Decoder'] | WebDecoder; outputs: WebFrame[]; streamInfo: StreamInfo; /** * @param useWebCodecs check `Decoder.isWebCodecsSupported` before contructor if `true` */ constructor(demuxer: FF['Demuxer'] | null, name: string, streamInfo: StreamInfo, useWebCodecs?: boolean); static isWebCodecsSupported(streamInfo: StreamInfo): Promise<boolean>; get mediaType(): "video" | "audio"; decode(pkt: Packet): Promise<Frame[]>; flush(): Promise<Frame[]>; close(): void; } export {};