@remotion/studio
Version:
APIs for interacting with the Remotion Studio
70 lines (69 loc) • 2.21 kB
TypeScript
import type { CompletedClientRender } from '@remotion/studio-shared';
import type { RenderStillOnWebImageFormat, WebRendererAudioCodec, WebRendererContainer, WebRendererQuality, WebRendererVideoCodec } from '@remotion/web-renderer';
import type { LogLevel } from 'remotion';
export type ClientRenderJobProgress = {
encodedFrames: number;
totalFrames: number;
doneIn: number | null;
renderEstimatedTime: number;
progress: number;
};
export type GetBlobCallback = () => Promise<Blob>;
type ClientRenderJobDynamicStatus = {
status: 'idle';
} | {
status: 'running';
progress: ClientRenderJobProgress;
} | {
status: 'saving';
} | {
status: 'done';
getBlob?: GetBlobCallback;
metadata: CompletedClientRender['metadata'];
} | {
status: 'cancelled';
} | {
status: 'failed';
error: {
message: string;
stack: string | undefined;
};
};
type ClientRenderJobBase = {
id: string;
startedAt: number;
compositionId: string;
outName: string;
inputProps: Record<string, unknown>;
delayRenderTimeout: number;
mediaCacheSizeInBytes: number | null;
logLevel: LogLevel;
licenseKey: string | null;
scale: number;
};
export type ClientStillRenderJob = ClientRenderJobBase & {
type: 'client-still';
imageFormat: RenderStillOnWebImageFormat;
frame: number;
} & ClientRenderJobDynamicStatus;
export type ClientVideoRenderJob = ClientRenderJobBase & {
type: 'client-video';
container: WebRendererContainer;
videoCodec: WebRendererVideoCodec | null;
audioCodec: WebRendererAudioCodec;
startFrame: number;
endFrame: number;
audioBitrate: WebRendererQuality;
videoBitrate: WebRendererQuality;
hardwareAcceleration: string;
keyframeIntervalInSeconds: number;
transparent: boolean;
muted: boolean;
} & ClientRenderJobDynamicStatus;
export type RestoredClientRenderJob = CompletedClientRender & {
status: 'done';
getBlob?: GetBlobCallback;
};
export type ClientRenderJob = ClientStillRenderJob | ClientVideoRenderJob | RestoredClientRenderJob;
export declare const isRestoredClientJob: (job: ClientRenderJob) => job is RestoredClientRenderJob;
export {};