Skip to main content

Video Elements

VIDEO elements place remote video clips on the project timeline. They support source trimming, playback speed, volume, filters, crop, chroma key, resize, zoom, animations, and video-to-video transitions.

Interface

interface VideoItem {
type: "VIDEO";
src: string;
id?: string;
x?: number;
y?: number;
width?: number;
height?: number;
anchor?: Anchor;
position?: PositionPreset;
resize?: "contain" | "cover";
enterBegin?: number;
enterEnd?: number;
exitBegin?: number;
exitEnd?: number;
track?: number;
opacity?: number;
angle?: number;
flipV?: boolean;
flipH?: boolean;
zoom?: boolean | { depth?: number };
radius?: BorderRadius;
enterAnimation?: XFadeEffect | null;
exitAnimation?: XFadeEffect | null;
cropParams?: CropParams;
chromaKey?: ChromaKey;
filter?: FilterOptions;
videoBegin?: number;
videoEnd?: number;
videoDuration?: number;
volume?: number;
speed?: number;
frameRate?: number;
transition?: XFadeEffect | null;
transitionDuration?: number;
transitionId?: string;
}

Required Fields

PropertyTypeNotes
type"VIDEO"Case-insensitive in API validation.
srcstringRemote http or https URL.

Properties

Placement, timing, layering, and animation fields are shared by all visual elements — see Common Element Properties. Videos support every media option in the support matrix, and add source timing, audio/playback, and transition fields documented below.

Timeline And Source Timing

PropertyDefaultNotes
videoBegin0Start offset inside source media.
videoEndproject or source durationEnd offset inside source media.
videoDurationproject or source durationSource clip duration hint.

Timeline placement (enterBegin/exitEnd) is the shared timing model — see Common Element Properties. videoBegin/videoEnd trim the source; the enter/exit fields place the trimmed clip on the timeline.

Audio And Playback

PropertyDefaultRange
volume10 to 1
speed10.1 to 10
frameRatesource/project frame rateinteger 1 to 60

Set volume: 0 on video clips when you want to replace source audio with tracks from audios.

Transitions

Transitions are available only between VIDEO elements. Add id to the target clip and set transition, transitionDuration, and transitionId on the clip that starts the transition.

[
{
"type": "VIDEO",
"id": "intro",
"src": "https://cdn.pixabay.com/video/2025/03/12/264272_large.mp4",
"resize": "cover",
"enterBegin": 0,
"exitEnd": 5,
"transition": "fade",
"transitionDuration": 1,
"transitionId": "main"
},
{
"type": "VIDEO",
"id": "main",
"src": "https://cdn.pixabay.com/video/2025/05/01/275983_large.mp4",
"resize": "cover",
"enterBegin": 5,
"exitEnd": 10
}
]

The next clip's id must match transitionId. Keep the handoff timing coordinated: the first clip's exitEnd should align with the next clip's enterBegin for the documented transition pattern.

Examples

Simple Video

{
"type": "VIDEO",
"src": "https://cdn.pixabay.com/video/2025/06/03/283533_large.mp4",
"resize": "cover",
"volume": 0
}

Trimmed Clip

{
"type": "VIDEO",
"src": "https://cdn.pixabay.com/video/2025/06/03/283533_large.mp4",
"videoBegin": 5,
"videoEnd": 25,
"volume": 0.8,
"width": 1920,
"height": 1080,
"enterBegin": 0,
"exitEnd": 20
}
videoBegin/videoEnd trim the source clip

Picture In Picture

{
"type": "VIDEO",
"src": "https://cdn.pixabay.com/video/2025/05/01/275983_large.mp4",
"videoBegin": 10,
"videoEnd": 30,
"width": 300,
"height": 200,
"position": "bottom-right",
"volume": 0.3,
"track": 10
}
Picture-in-picture with track layering

Formats

Input video assets are remote URLs and are checked before rendering. Output video formats are limited to mp4, mov, avi, and webm.