video.md

September 12, 2026 · View on GitHub

A video clip: a rect whose intrinsic paint is the media src names (see media.md). When timing is omitted, the node fits its natural duration (see timing.md).

<video src="b-roll/drone.mp4" width={1920} height={1080} start={0} sourceIn={1} sourceOut={13} volume={-3} />

Props

All common props, plus:

PropTypeDefaultMeaning
srcstring | AssetRefrequiredSee media.md.
objectFit"cover" | "contain" | "fill""cover"How the source maps into the box.
frameRatenumber30Frames per second for a src naming a directory of numbered frames — the only thing that says how long such a clip runs. Nothing for encoded video to read: a file carries its own rate (see media.md).
volumenumber0Decibels: 0 = unity, negative attenuates (-6 ≈ half as loud), -Infinity = silence. Not linear.
mutedbooleanfalseExcludes the node's audio from the mix; independent of volume.
syncTostringnoneid of another element carrying audio; derives start by audio alignment (see audio-sync.md). Mutually exclusive with start.

Without width/height the box is 1920×1080.

A paint child draws over the media paint created by src (see paints.md); a <shaderPaint> child instead post-processes it, so the frame renders through the shader. <stroke>, <shadow>, <effect>, <animation> and <keyframeTrack> children are valid too.