remotion
Version:
Make videos programmatically
87 lines (86 loc) • 3.17 kB
TypeScript
import type React from 'react';
import type { LoopVolumeCurveBehavior } from '../audio/use-audio-frame.js';
import type { VolumeProp } from '../volume-prop.js';
export type CommonVideoProps = {
/**
* @deprecated `startFrom` was renamed to `trimBefore`
*/
startFrom: number | undefined;
/**
* @deprecated `endAt` was renamed to `trimAfter`
*/
endAt: number | undefined;
/**
* Trim of the video from the left (start) in frames.
*/
trimBefore: number | undefined;
/**
* Trim of the video from the right (end) in frames.
*/
trimAfter: number | undefined;
/**
* @deprecated Only for internal `transparent` use
*/
_remotionInternalNativeLoopPassed: boolean;
};
export type RemotionMainVideoProps = Partial<CommonVideoProps>;
export type NativeVideoProps = Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, 'autoPlay' | 'controls' | 'onEnded' | 'nonce' | 'onError' | 'disableRemotePlayback'>;
export type RemotionVideoProps = NativeVideoProps & {
name?: string;
volume?: VolumeProp;
playbackRate?: number;
acceptableTimeShiftInSeconds?: number;
allowAmplificationDuringRender?: boolean;
useWebAudioApi?: boolean;
toneFrequency?: number;
pauseWhenBuffering?: boolean;
showInTimeline?: boolean;
delayRenderTimeoutInMilliseconds?: number;
loopVolumeCurveBehavior?: LoopVolumeCurveBehavior;
delayRenderRetries?: number;
onError?: (err: Error) => void;
onAutoPlayError?: null | (() => void);
audioStreamIndex?: number;
};
type DeprecatedOffthreadVideoProps = {
/**
* @deprecated Use the `transparent` prop instead
*/
imageFormat: never;
};
type MandatoryOffthreadVideoProps = {
src: string;
};
type OptionalOffthreadVideoProps = {
className: string | undefined;
name: string | undefined;
id: string | undefined;
style: React.CSSProperties | undefined;
volume: VolumeProp | undefined;
playbackRate: number;
muted: boolean;
onError: undefined | ((err: Error) => void);
acceptableTimeShiftInSeconds: undefined | number;
allowAmplificationDuringRender: boolean;
toneFrequency: number;
transparent: boolean;
toneMapped: boolean;
pauseWhenBuffering: boolean;
loopVolumeCurveBehavior: LoopVolumeCurveBehavior;
delayRenderTimeoutInMilliseconds: number | undefined;
delayRenderRetries: number | undefined;
useWebAudioApi: boolean;
/**
* @deprecated For internal use only
*/
stack: string | undefined;
showInTimeline: boolean;
onAutoPlayError: null | (() => void);
onVideoFrame: OnVideoFrame | undefined;
crossOrigin: '' | 'anonymous' | 'use-credentials' | undefined;
audioStreamIndex: number;
};
export type AllOffthreadVideoProps = MandatoryOffthreadVideoProps & OptionalOffthreadVideoProps & CommonVideoProps;
export type RemotionOffthreadVideoProps = MandatoryOffthreadVideoProps & Partial<OptionalOffthreadVideoProps> & Partial<CommonVideoProps> & Partial<DeprecatedOffthreadVideoProps>;
export type OnVideoFrame = (frame: CanvasImageSource) => void;
export {};