Compose 스키마
This content is for v0.4. Switch to the latest version for up-to-date documentation.
compose.v1.schema.json에서 자동 생성한 페이지입니다. compose spec은 영상 하나 전체(본문, 그 위에 그려지는 것, 그 아래에서 재생되는 것)를 기술하는 문서이며, 프로젝트 문서로 컴파일됩니다. 안에 포함된 모델 타입은 프로젝트 스키마와 같습니다.
ComposeSpec
A whole video: a body, what is drawn over it, and what plays under it.
| Field | Type | Description |
|---|---|---|
audio | Node[] | Sound beside the body's: |
bodyrequired | Node | The main picture, from time zero. Its length is the video's unless |
canvas | Canvas | Size, rate and background. Default Default: |
compose_version | 1 | Spec version. This build reads only Default: |
duration | number | null | The video's length in seconds. Default: the body's. |
loudness | Loudness | null | The loudness an export normalizes the mix to. The project does not hold it: it comes back as an export option. |
name | string | null | The project's name. Default |
overlays | Node[] | Nodes drawn over the body, each over the ones before, placed by their own |
theme | ThemeChoice | Fonts, colors, sizes and default timings. Default Default: |
Align
A point of an area: its center, an edge's middle or a corner.
"center"The center."top"The top edge's middle."bottom"The bottom edge's middle."left"The left edge's middle."right"The right edge's middle."top-left"The top-left corner."top-right"The top-right corner."bottom-left"The bottom-left corner."bottom-right"The bottom-right corner.
AlignContent
Where the lines of a wrapping flex container, or a grid's rows, lie across the container.
"start"Packed at the start."center"Packed in the middle."end"Packed at the end."space_between"The first at the start, the last at the end, equal space between."space_around"Equal space around each."space_evenly"Equal space between each and at both ends."stretch"Grown to fill the container.
AlignItems
Where children lie across a flex container's main axis, or in their grid areas.
"start"At the start."center"In the middle."end"At the end."stretch"Across the whole line or area.
AnimatedPoint
A position that can move along curves between its keyframes.
Its JSON is that of an Animated<Vec2>, plus optional spatial tangents on each keyframe: with them, the value travels along the cubic Bezier from one keyframe's value through its out_tangent and the next keyframe's in_tangent, at the speed its timing curve sets along the curve's length. Without them it moves in a straight line, as an Animated<Vec2> does.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Vec2 | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | PointKeyframe[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_EffectValue
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | EffectValue | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_EffectValue[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Insets
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Insets | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Insets[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutLength
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutLength | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutLength[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutOffset
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutOffset | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutOffset[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutSize
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutSize | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutSize[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Paint
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Paint | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Paint[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Path
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Path | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Path[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Vec2
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Vec2 | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Vec2[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_float
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float) | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_float[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_string
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | string | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_string[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
AudioEffect
A serializable single-input audio effect applied to a clip or track bus.
Sidechain ducking is not an entry here because it consumes a second input. It is authored per track through Ducking.
One of:
type: "eq"
Cascaded biquad sections.
| Field | Type | Description |
|---|---|---|
bandsrequired | EqBand[] | Ordered filter sections, 1 to |
type: "compressor"
Lookahead dynamic range compression.
| Field | Type | Description |
|---|---|---|
attack_msrequired | number (float) | Attack time in milliseconds, positive and at most |
lookahead_ms | number (float) | Lookahead in milliseconds, at most Default: |
ratiorequired | number (float) | Downward ratio, from one (unity) to |
release_msrequired | number (float) | Release time in milliseconds, positive and at most |
threshold_dbrequired | number (float) | Level above which gain reduction begins, in decibels from |
type: "reverb"
Schroeder reverberation.
| Field | Type | Description |
|---|---|---|
dampingrequired | number (float) | High-frequency damping, in |
mixrequired | number (float) | Wet mix, in |
room_sizerequired | number (float) | Room size, in |
AudioProperties
Per-clip audio presentation controls.
| Field | Type | Description |
|---|---|---|
effects | AudioEffect[] | Ordered single-input effects applied before the track bus, at most Default: |
fade_in | MediaTime | Fade-in duration measured from the clip's timeline start. Non-negative. Default: |
fade_out | MediaTime | Fade-out duration measured back from the clip's timeline end. Non-negative. Default: |
fade_shape | FadeShape | Curve used by both fades. Default: |
gain | Animated_float | Animated linear amplitude constrained to Default: |
muted | boolean | Silences this clip without removing it. Default: |
pan | Animated_float | Animated stereo position from Default: |
AudioStreamShape
An audio stream's channel count and sample rate.
| Field | Type | Description |
|---|---|---|
channelsrequired | integer (uint32) | Channel count. |
sample_raterequired | integer (uint32) | Samples per second per channel. |
CacheIntent
Whether a runtime may keep and reuse a clip's rendered picture.
"auto"The runtime decides, keeping pictures whose inputs it can identify."pin"Keep it ahead of other pictures, and bake its range when a host bakes render caches."bypass"Always render it live: nothing it draws is read from or kept in a cache.
Canvas
The canvas: a preset name, or its parts.
One of:
string
A preset: youtube-1080p (1920x1080), youtube-4k (3840x2160), youtube-720p (1280x720), shorts (1080x1920), square (1080x1080), or portrait (1080x1350); all at 30 fps.
<a href="#customcanvas">CustomCanvas</a>
A preset with some parts replaced, or every part given.
CaptionCue
Text shown over one timeline interval.
| Field | Type | Description |
|---|---|---|
textrequired | string | The text; |
timeline_rangerequired | TimeRange | When the cue shows. Non-empty and not before zero. |
CaptionStyle
How captions look.
"outline"Text with a dark band around the glyphs, near the bottom."boxed"Text on a panel behind each line, near the bottom."bar-bottom"Text centered on a translucent bar across the canvas, near the bottom, the bar shown as long as the captions."bold-center"Larger outlined text a little below the middle, as short-form video draws it.
Captions
What a caption track shows: its cues, in one style.
| Field | Type | Description |
|---|---|---|
cuesrequired | CaptionCue[] | Cues in timeline order, none overlapping another: a track shows one cue at a time. Simultaneous captions take one track each. |
style | TextStyle | How every cue of the track looks. Default: |
CaptionsNode
Timed text.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
color | Rgba | null | Text color. Default: the theme's. |
cues | Cue[] | Cues as given, in seconds from the node's start. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
file | string | null | A SubRip ( |
font_size | number | null | Font size in pixels. Default: the theme's caption size. |
id | string | null | The node's name, for other nodes to refer to. |
max_chars | integer | null | The longest cue words are grouped into, in characters. Default 32 on a tall canvas, 42 on a wide one. |
position | number | null | Where the text's middle lies, as a fraction of the canvas height. Default: the style's, which depends on the canvas's shape. |
srt | string | null | SubRip text. |
style | CaptionStyle | How the captions look. Default Default: |
vtt | string | null | WebVTT text. |
words | Cue[] | Words with their times, as speech recognition gives them; they are grouped into cues of up to |
Clip
A reference to a source over independent timeline and source ranges.
| Field | Type | Description |
|---|---|---|
audio | AudioProperties | Presentation controls applied to this clip's audio. Default: |
blend_mode | ClipBlendMode | Artistic operation used when this clip is composited over earlier layers. Default: |
cache | CacheIntent | Whether a runtime may keep and reuse the clip's rendered picture. Never changes what renders: a kept picture is the one a live render draws. |
composition | ClipComposition | null | The composition graph that builds the clip's picture from its source, with the clip's time mapping onto it. Without one the clip shows its source as it is. Visual clips only. Default: |
idrequired | ClipId | Stable clip identity. |
masks | ShapeMask[] | Shapes that limit where the clip is visible, applied in order after its composition and before its transform. At most Default: |
matte | Matte | null | Another visual clip whose picture sets where this clip is visible. Default: |
source_idrequired | SourceId | Source consumed by this clip. |
source_rangerequired | TimeRange | Interval read from the source timeline. |
time_map | TimeMap | How timeline time maps onto the source range. Default: |
timeline_rangerequired | TimeRange | Destination interval on the project timeline. |
visual | VisualProperties | Resolution-independent visual presentation controls. Default: |
ClipBlendMode
Artistic blend operation stored independently from a renderer implementation.
The modes are those of W3C Compositing and Blending Level 1 (the CSS mix-blend-mode values), with the specification's formulas.
"normal"Preserve source color and apply source-over coverage."multiply"Multiply source and backdrop components."screen"Inverse-multiply source and backdrop components."overlay"Multiply dark backdrop regions and screen light regions."darken"The darker of source and backdrop, per channel."lighten"The lighter of source and backdrop, per channel."color_dodge"Brighten the backdrop to reflect the source."color_burn"Darken the backdrop to reflect the source."hard_light"Multiply or screen, depending on the source."soft_light"Darken or lighten, depending on the source: a diffused hard light."difference"The absolute difference of source and backdrop."exclusion"Like difference, with lower contrast."hue"The source's hue with the backdrop's saturation and luminosity."saturation"The source's saturation with the backdrop's hue and luminosity."color"The source's hue and saturation with the backdrop's luminosity."luminosity"The source's luminosity with the backdrop's hue and saturation.
ClipComposition
A clip's use of a Composition, and how its time maps onto it.
Composition time is offset + (t - clip start) * scale for timeline time t, rounded down to a tick. Moving a clip keeps its offset, so its animation moves with it; trimming its start by d adds d * scale to the offset, so what remains of the animation stays where it was. Extending the start before composition time zero makes the offset negative: settings hold their first keyframe there, and media nodes show their first frame.
| Field | Type | Description |
|---|---|---|
idrequired | CompositionId | The composition shown. |
offset | MediaTime | Composition time at the clip's start. Default: |
scale | TimeScale | Composition time per timeline time. Default: |
ClipEffect
One versioned runtime effect invocation: a composition's effect or transition node, or a timeline transition.
| Field | Type | Description |
|---|---|---|
idrequired | string | Stable effect definition identifier. |
params | { [name]: Animated_EffectValue } | Named parameter values, constant or keyframed. Omitted entries use definition defaults. Keyframe times are composition times in a composition node and timeline times in a timeline transition. A parameter's keyframes all have one value type, and Default: |
resources | { [name]: EffectResourceId } | Named external resources matched against the effect definition. Default: |
versionrequired | integer (uint32) | Exact effect definition version required by the project. |
ClipId
A stable timeline-clip identifier.
Type: string
ClipTransition
A two-input transition over the overlap of two visual clips.
| Field | Type | Description |
|---|---|---|
easingrequired | Easing | Timing curve applied to the transition's linear progress. The eased progress is clamped to |
effectrequired | ClipEffect | Versioned transition shader and named parameter values. |
from_cliprequired | ClipId | Clip sampled as transition progress zero. |
timeline_rangerequired | TimeRange | Half-open timeline interval over which both clips must be active. |
to_cliprequired | ClipId | Clip sampled as transition progress one. |
ColorMatrix
Coefficients used to decode source components.
"bt601"SD BT.601 YUV coefficients."bt709"HD BT.709 YUV coefficients."bt2020_ncl"BT.2020 non-constant-luminance YUV coefficients."rgb"Source components are already RGB.
ColorMetadata
Host-independent video color description.
| Field | Type | Description |
|---|---|---|
dynamic_rangerequired | DynamicRange | SDR or HDR signal classification: HDR exactly when |
matrixrequired | ColorMatrix | YUV-to-RGB coefficient family, or RGB for already converted sources. |
primariesrequired | ColorPrimaries | RGB chromaticity standard. |
rangerequired | ColorRange | Encoded component range. |
transferrequired | TransferFunction | Nonlinear transfer curve. |
ColorPrimaries
RGB primary chromaticities a source or export declares.
"bt601"SD video primaries."bt709"HD video and sRGB primaries."bt2020"Wide-gamut BT.2020 primaries, normally indicating HDR input.
ColorRange
Nominal encoded component range.
"limited"Studio/video range."full"Full component range.
Composition
An acyclic graph of image operations with one selected output.
| Field | Type | Description |
|---|---|---|
controls | CompositionControl[] | The node settings a group node may set, by name. |
idrequired | CompositionId | Stable composition identity. |
inputs | string[] | The images a group node gives it, by name, in port order: its |
nodes | CompositionNode[] | The graph's nodes. Their order has no meaning: a node may name a node listed after it as its input. Default: |
output | NodeId | null | The node whose image is the composition's picture. A composition without one saves, but cannot be rendered. Default: |
CompositionControl
A node setting a composition exposes to the group nodes that use it: an effect or transition parameter of one of its nodes.
| Field | Type | Description |
|---|---|---|
namerequired | string | The name a group node sets it by; unique in the composition. |
noderequired | NodeId | The effect or transition node. |
paramrequired | string | The parameter of its effect. |
CompositionId
A stable composition-graph identifier.
Type: string
CompositionNode
One image operation in a Composition.
Cue
Text over an interval.
| Field | Type | Description |
|---|---|---|
endrequired | number (double) | End in seconds. |
startrequired | number (double) | Start in seconds. |
textrequired | string | The text. |
CustomCanvas
A canvas by its parts.
| Field | Type | Description |
|---|---|---|
background | Rgba | null | The opaque color under everything. Default: the theme's. |
frame_rate | FrameRateChoice | null | Frames per second: an integer, 23.976, 29.97 or 59.94, or the project's exact |
height | integer | null | Height in pixels. |
preset | string | null | The preset the other parts replace parts of. Default |
width | integer | null | Width in pixels. |
Dash
A dash pattern.
| Field | Type | Description |
|---|---|---|
offset | Animated_float | How far into the pattern the stroke starts. Default: |
patternrequired | Animated_float[] | Alternating dash and gap lengths, as fractions of the shorter side: one to |
Display
How a box lays its children out.
"flex"CSS flexbox."grid"CSS grid.
Ducking
Sidechain ducking authored on the track that is attenuated.
| Field | Type | Description |
|---|---|---|
attack_msrequired | number (float) | Attack time in milliseconds, positive and at most |
depth_dbrequired | number (float) | Maximum attenuation in decibels, from |
release_msrequired | number (float) | Release time in milliseconds, positive and at most |
sidechain_trackrequired | TrackId | Track whose mixed output drives the envelope follower. |
thresholdrequired | number (float) | Linear level above which attenuation begins. Positive. |
DynamicRange
Whether a signal is standard or high dynamic range. It follows the transfer: hdr exactly when the transfer is PQ or HLG, and a color whose two fields disagree is refused.
"sdr"Standard dynamic range: a BT.709 or sRGB transfer."hdr"High dynamic range: a PQ or HLG transfer, which a project tone-maps into the SDR working space or refuses, as its color pipeline says.
Easing
A timing curve from linear progress to eased progress, without a hold.
Transitions use it directly; keyframe Interpolation adds hold.
One of:
type: "linear"
Progress advances at a constant rate.
type: "cubic_bezier"
Progress follows a CSS cubic-bezier() curve.
| Field | Type | Description |
|---|---|---|
x1required | number (float) | Horizontal coordinate of the first control point, in |
x2required | number (float) | Horizontal coordinate of the second control point, in |
y1required | number (float) | Vertical coordinate of the first control point. |
y2required | number (float) | Vertical coordinate of the second control point. |
EffectResourceId
A stable effect-resource identifier.
Type: string
EffectValue
Serializable value supplied to one runtime effect parameter.
One of:
type: "float"
One finite scalar.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float) |
type: "vec2"
Two finite components, normally in normalized coordinates.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float)[] |
type: "vec4"
Four finite components that are not a color, such as per-channel thresholds; they keyframe component by component.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float)[] |
type: "color"
Straight (not premultiplied), sRGB-encoded RGBA components in the inclusive unit interval, as a color picker shows them.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float)[] |
type: "enum"
Index into an effect definition's enum choices.
| Field | Type | Description |
|---|---|---|
valuerequired | integer (uint32) |
type: "bool"
Boolean toggle.
| Field | Type | Description |
|---|---|---|
valuerequired | boolean |
EqBand
A single equalizer section stored independently from its DSP implementation.
| Field | Type | Description |
|---|---|---|
frequency_hzrequired | number (float) | Center or corner frequency in hertz, within |
gain_db | number (float) | Peaking gain in decibels, at most Default: |
kindrequired | EqBandKind | Filter shape. |
qrequired | number (float) | Resonance, within |
EqBandKind
The filter shape of one equalizer band.
"peaking"Bell-shaped parametric band."low_pass"Second-order low-pass."high_pass"Second-order high-pass.
FadeShape
Curve applied by a clip's fade in and fade out.
"linear"Amplitude moves linearly. Two linear fades over one overlap dip by 6 dB."equal_power"Amplitude follows a quarter sine. Two of these crossfade at constant power, which is what overlapping clips normally want.
FileKind
What a media file holds, when its extension does not say.
"video"Moving pictures, perhaps with sound."image"A still picture."audio"Sound alone.
FillRule
Which regions of a path are inside it.
"nonzero"Where the outline winds around a point at all."evenodd"Where it winds around a point an odd number of times.
Fit
How a picture fills its area.
"contain"All of it, as large as fits; the rest of the area stays empty."cover"All of the area, cropped to it."fill"Stretched to the area."none"At its own size in pixels, cropped to the area.
FlexDirection
The main axis of a flex container.
"row"Left to right."column"Top to bottom."row_reverse"Right to left."column_reverse"Bottom to top.
FlexWrap
Whether a flex container's children wrap.
"nowrap"One line."wrap"As many lines as the children need.
FrameRate
A positive rational frame rate in reduced form, at most one frame per tick (120 000 frames per second).
| Field | Type | Description |
|---|---|---|
denrequired | integer (uint32) | Seconds per |
numrequired | integer (uint32) | Frames per |
FrameRateChoice
A frame rate, as a number or exactly.
One of:
number <span class="a2-muted">(double)</span>
Frames per second: an integer, or 23.976, 29.97 or 59.94 for the NTSC rates.
<a href="#framerate">FrameRate</a>
The project's exact rate.
Generator
The picture of a generated source.
A generated picture has the canvas's size and aspect, like a source that fills the frame at scale 1. Positions are in its normalized space, (0, 0) top-left to (1, 1) bottom-right; lengths (radii, stroke widths) are fractions of its shorter side, so the picture is the same at any render resolution. A fill or text does not change over time (a clip animates it with its transform, effects, and masks); shapes and layouts may.
One of:
type: "fill"
Paint over the whole picture.
| Field | Type | Description |
|---|---|---|
paintrequired | Paint | What covers the picture. |
type: "shapes"
Shapes drawn from an ordered content tree, as an After Effects shape layer or a Lottie shape layer draws them. Unlike the other generators, its picture changes over time: every value in the tree may be keyframed, in the picture's time.
type: "text"
Text on a transparent picture, laid out and placed by its style as a caption track's cues are: its size and wrapping width fractions of the canvas, its anchor at style.position. The engine draws it with the fonts its host registered.
| Field | Type | Description |
|---|---|---|
style | TextStyle | How it looks and where it lies. The font size is at most Default: |
textrequired | string | The text; |
type: "layout"
Boxes laid out by CSS flexbox around their text and shapes. Its picture changes over time when any value in the tree is keyframed, in the picture's time. The engine lays it out with the fonts it draws with. See LayoutNode.
| Field | Type | Description |
|---|---|---|
rootrequired | LayoutNode | The root box: the whole picture. |
GradientStop
One color of a gradient.
| Field | Type | Description |
|---|---|---|
colorrequired | Rgba | Color at that position. |
offsetrequired | number (float) | Position along the gradient, in |
GridAutoFlow
How a grid places items that have no placement of their own.
"row"Filling each row, adding rows."column"Filling each column, adding columns."row_dense"Asrow, filling earlier holes."column_dense"Ascolumn, filling earlier holes.
GridLength
How long a grid of clips of different lengths lasts.
"shortest"As long as its shortest cell."longest_freeze"As long as its longest; shorter clips hold their last frame."longest_loop"As long as its longest; shorter clips play again from their start.
GridPlacement
Where a grid item lies on one axis, as CSS writes it: 2, "1 / 3", "span 2", "2 / span 3", "auto". Lines count from 1, or from -1 at the end.
One of:
integer
string
Inset
Space kept clear inside an area.
One of:
number <span class="a2-muted">(float)</span>
The same on every side.
number <span class="a2-muted">(float)</span>[]
[top, right, bottom, left].
Insets
A length on each side of a box: one length for every side, the CSS shorthand of one to four lengths ("8px 16px": top first, clockwise), or the sides object, missing sides 0.
One of:
number <span class="a2-muted">(float)</span>
string
object
| Field | Type | Description |
|---|---|---|
bottom | LayoutSize | |
left | LayoutSize | |
right | LayoutSize | |
top | LayoutSize |
Interpolation
Interpolation from one keyframe to the next.
Values are interpolated numerically: a rotation from 0 to 720 degrees turns twice, and one from 0 to 360 turns once. A host that wants the shortest path normalizes its keyframe values.
One of:
type: "hold"
Keep this keyframe's value until the next keyframe.
type: "linear"
Move to the next value at a constant rate.
type: "cubic_bezier"
Move to the next value along a CSS cubic-bezier() timing curve.
| Field | Type | Description |
|---|---|---|
x1required | number (float) | Horizontal coordinate of the first control point, in |
x2required | number (float) | Horizontal coordinate of the second control point, in |
y1required | number (float) | Vertical coordinate of the first control point. |
y2required | number (float) | Vertical coordinate of the second control point. |
JustifyContent
Where children lie along a container's main axis, or a grid's columns in it.
"start"Packed at the start."center"Packed in the middle."end"Packed at the end."space_between"The first at the start, the last at the end, equal space between."space_around"Equal space around each."space_evenly"Equal space between each and at both ends.
Keyframe_EffectValue
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | EffectValue | Value at |
Keyframe_Insets
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Insets | Value at |
Keyframe_LayoutLength
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | LayoutLength | Value at |
Keyframe_LayoutOffset
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | LayoutOffset | Value at |
Keyframe_LayoutSize
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | LayoutSize | Value at |
Keyframe_Paint
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Paint | Value at |
Keyframe_Path
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Path | Value at |
Keyframe_Vec2
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | Vec2 | Value at |
Keyframe_float
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | number (float) | Value at |
Keyframe_string
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value: timeline time, except in a composition node's settings, which are keyed in composition time, and in a shapes or layout generator's tree, which is keyed in its picture's time. |
valuerequired | string | Value at |
LayoutBorder
A border inside the border box, as wide on every side.
| Field | Type | Description |
|---|---|---|
paintrequired | Animated_Paint | What covers the border. Positions are normalized to the border box. |
widthrequired | Animated_LayoutSize | Width. At least 0. |
LayoutInset
Where an absolute box lies in its parent's padding box. A missing side is auto: with neither left nor right, the box keeps its place in the flow on that axis.
| Field | Type | Description |
|---|---|---|
bottom | Animated_LayoutLength | null | Distance from the parent's bottom padding edge. |
left | Animated_LayoutLength | null | Distance from the parent's left padding edge. |
right | Animated_LayoutLength | null | Distance from the parent's right padding edge. |
top | Animated_LayoutLength | null | Distance from the parent's top padding edge. |
LayoutLength
A length: a number is a fraction of the layout picture's shorter side, "<n>px" pixels of the project canvas, "<n>%" a percent of the parent's content box along the field's axis.
One of:
number <span class="a2-muted">(float)</span>
string
LayoutNode
One box of a layout tree.
A box lays its children out by flexbox (display: flex, the default) or grid (display: grid). It is a container when it has children, a leaf when it has text or shape content, and empty otherwise (a spacer or a decoration). Per box, its background is drawn first, then its border, then its content. Boxes are drawn in document order; a reversed direction or a grid placement moves them, not their order.
| Field | Type | Description |
|---|---|---|
align_content | AlignContent | null | Where lines of a wrapping flex container, or a grid's rows, lie across the container. Default |
align_items | AlignItems | null | Where children lie across the main axis, or in their grid areas' rows. Default |
align_self | AlignItems | null | Where the box lies across its flex container's main axis, or in its grid area's row. |
aspect_ratio | number | null | Width over height. Positive. |
background | Animated_Paint | null | What covers the border box, rounded by |
border | LayoutBorder | null | A border inside the border box. |
border_radius | Animated_LayoutSize | null | The corner radius of the border box. At least 0; default 0. A radius past half the box's shorter side is capped. |
children | LayoutNode[] | Boxes laid out in this one, in document (and paint) order. Not with |
color | Rgba | null | Text color. Inherited; the root's is white. |
column_gap | Animated_LayoutSize | null | Space between columns, in place of |
display | Display | null | How the box lays its children out. Default |
flex_basis | Animated_LayoutLength | null | The main size before growing and shrinking. |
flex_direction | FlexDirection | null | The main axis of a flex container's children. Default |
flex_grow | Animated_float | null | How much of a flex container's free space the box takes. At least 0; default 0. Not in a grid, as every flex item field. |
flex_shrink | Animated_float | null | How much the box gives up when a flex container's space runs short. At least 0; default 1. |
flex_wrap | FlexWrap | null | Whether a flex container's children wrap onto more lines. Default |
font_family | string | null | The family the box's text draws in, as a text style's |
font_size | Animated_LayoutSize | null | Font size: positive, at most |
font_weight | integer | null | The weight, in |
gap | Animated_LayoutSize | null | Space between children, on both axes. At least 0; default 0. |
grid_auto_columns | TrackList | null | The size of a grid's implicit columns. Default |
grid_auto_flow | GridAutoFlow | null | How a grid places items without a placement. Default |
grid_auto_rows | TrackList | null | The size of a grid's implicit rows. Default |
grid_column | GridPlacement | null | The box's columns in its grid, as CSS writes them ( |
grid_row | GridPlacement | null | The box's rows in its grid. Default |
grid_template_columns | TrackList | null | A grid's explicit columns, as CSS writes them ( |
grid_template_rows | TrackList | null | A grid's explicit rows. Default none. |
height | Animated_LayoutLength | null | Border-box height. |
inset | LayoutInset | null | Where an |
justify_content | JustifyContent | null | Where children lie along the main (inline, for a grid) axis. Default |
justify_items | AlignItems | null | Where a grid's children lie in their grid areas' columns. Default |
justify_self | AlignItems | null | Where the box lies in its grid area's column. |
letter_spacing | number | null | Space after each character, as a fraction of the font size, in |
line_height | number | null | Baseline-to-baseline distance in font sizes, in |
margin | Animated_Insets | null | Space outside the border, written as |
max_height | Animated_LayoutLength | null | Largest height. |
max_width | Animated_LayoutLength | null | Largest width. |
min_height | Animated_LayoutLength | null | Smallest height. |
min_width | Animated_LayoutLength | null | Smallest width. |
opacity | Animated_float | null | Opacity of the box and everything in it, as one group, in |
outline | TextOutline | null | A band around the glyphs; its width a fraction of the font size. Inherited; the root has none. |
overflow | Overflow | null | Whether content past the padding box is drawn. Default |
padding | Animated_Insets | null | Space inside the border: a length, the CSS shorthand ( |
position | Position | null | Whether the box is in its parent's flow. Default |
rotation_degrees | Animated_float | null | Clockwise rotation of the box and everything in it about its border-box centre, in degrees, after layout. |
row_gap | Animated_LayoutSize | null | Space between rows (between lines of a wrapping row flex container), in place of |
scale | Animated_Vec2 | null | Per-axis scale of the box and everything in it about its border-box centre, after layout. |
shape | LayoutShape | null | Shapes drawn on a picture the size of the box's content box. Not with |
text | Animated_string | null | The box's text, wrapped at its content width and drawn in the style it inherits; |
text_align | TextAlign | null | How lines align within the content width. Inherited; the root's is |
translate | Animated_LayoutOffset | null | Offset of the box and everything in it, after layout: the object, or one or two lengths as CSS |
width | Animated_LayoutLength | null | Border-box width. |
LayoutOffset
An offset, x right and y down: one or two lengths as CSS translate writes them (y 0 when missing), or {x, y}.
LayoutShape
A box's shapes, drawn as a shapes generator draws its items on a picture the size of the box's content box: positions normalized to that box, lengths fractions of its shorter side. A shape box has no size of its own.
| Field | Type | Description |
|---|---|---|
itemsrequired | ShapeItem[] | The content tree, front first. |
LayoutSize
A length that may not be a percent: a number is a fraction of the layout picture's shorter side, "<n>px" pixels of the project canvas.
One of:
number <span class="a2-muted">(float)</span>
string
LineCap
How an open stroke ends.
"butt"Flat at the end point."round"A half circle past the end point."square"A half square past the end point.
LineJoin
How stroke segments meet at a vertex.
"miter"Extended edges meeting at a point, up to the miter limit."round"A circular arc."bevel"A straight cut across the corner.
LinearPrimaries
Named RGB primaries linear-light media may be in, each with its own white point.
"bt709"ITU-R BT.709 and sRGB, D65 white."bt2020"ITU-R BT.2020, D65 white."p3_d65"DCI-P3 primaries with a D65 white, as Display P3."aces_ap0"ACES AP0 (SMPTE ST 2065-1), the ACES white."aces_ap1"ACES AP1 (ACEScg), the ACES white.
LoopMode
How each pass of a Loop follows the one before.
"repeat"Every pass plays forward, from the start again. Sound fades out and in overLOOP_FADE_SECONDSat each wrap, so the jump does not click."ping_pong"Passes alternate forward and backward.
Loudness
The loudness an export normalizes to: a target, or a target and a ceiling.
One of:
number <span class="a2-muted">(double)</span>
Integrated loudness in LUFS, under a -1 dBTP ceiling.
<a href="#loudnesstarget">LoudnessTarget</a>
Integrated loudness and a true-peak ceiling.
LoudnessTarget
The loudness an export normalizes to.
| Field | Type | Description |
|---|---|---|
target_lufsrequired | number (double) | Integrated loudness, -60..=0 LUFS. |
true_peak_ceiling_dbtp | number (double) | True-peak ceiling, -20..=0 dBTP. Default -1. Default: |
MaskMode
How a mask combines with the coverage of the masks before it.
Coverage starts empty when the first mask adds, and full otherwise, so a clip whose only mask subtracts is visible outside the shape.
"add"Union:c + m - c * m."subtract"Difference:c * (1 - m)."intersect"Intersection:c * m.
Matte
Another visual clip whose picture sets where this clip is visible.
The matte clip is drawn, with its own transform and effects, only into the matte; a clip that is any clip's matte is never composited itself. Where the matte clip is not active, its coverage is zero.
MatteMode
Which property of the matte clip's picture is coverage.
"alpha"Its alpha."alpha_inverted"One minus its alpha."luma"Its luminance over black: BT.709 weights on linear light, times alpha."luma_inverted"One minus that luminance.
MediaFingerprint
Evidence of a source's media, each part recorded only when it was known.
A matching content hash proves the same bytes. Without one, the other parts can only show a difference. modified_ms narrows a search for candidates and never decides whether a candidate is the same media.
| Field | Type | Description |
|---|---|---|
byte_length | integer | null | The file's length in bytes. |
color | ColorMetadata | null | The color the decoded pictures carry. |
content_sha256 | string | null | SHA-256 of the whole file, as 64 lowercase hexadecimal digits. |
duration_ticks | integer | null | Where the media ends on its own timeline, in ticks: its first presentation plus its length, the end of any source range that reads it. A transport stream that starts at 1.4 s and lasts 2 s ends at 3.4 s. Non-negative. |
modified_ms | integer | null | The file's modification time, in milliseconds since the Unix epoch. |
streams | StreamTopology | null | The streams the file carries. |
MediaItem
A file given by its path alone, or a media node.
One of:
string
The file, everything else by default.
<a href="#node">Node</a>
A media node.
MediaKind
The payload domain of a source.
"video"A video stream, potentially with an audio stream."audio"An audio stream."image"A still visual image."generated"A picture the engine draws from the source'sGenerator. The host supplies nothing for it."composition"A composition of the project, drawn at the source time as its own time. The host supplies nothing for it; the media its nodes read, it supplies as for any composition.
MediaSource
A host-resolved media resource.
| Field | Type | Description |
|---|---|---|
color_metadata | ColorMetadata | null | The color a Default: |
composition | CompositionId | null | The composition a |
fingerprint | MediaFingerprint | null | What the host found at the locator when the project recorded it, so another host can tell whether media it finds is the same. A generated source has none. |
generator | Generator | null | What a Default: |
has_audio | boolean | Whether this source's media has an audio stream: a fact of the file, so every host that imports it records the same, whether or not that host can decode the stream. A host that cannot reports so at run time and plays the source silent; the document keeps the stream for the hosts that can.
Default: |
idrequired | SourceId | Stable source identity. |
kindrequired | MediaKind | Media payload domain. |
locator | string | Opaque URI or host locator. The engine does not open it directly. Required, except that a Default: |
provider | ProviderSource | null | The extension provider that supplies this source's media, and its settings, when the host's own decoders do not read it. |
MediaTime
A signed position or duration in timeline ticks (120 000 per second), at most the largest integer a JavaScript number holds exactly either way.
Type: integer (int64)
MergeLayer
One layer of a Merge.
| Field | Type | Description |
|---|---|---|
blend_mode | ClipBlendMode | How the layer blends with the layers under it. Default: |
input | NodeId | null | The layer's image. Default: |
opacity | Animated_float | The layer's opacity, in Default: |
MissingFrames
How an image sequence shows a frame missing from its numbering.
"reject"A sequence with a missing frame is refused."hold"The frame before it is shown."blank"Nothing is shown: a transparent frame.
Node
One part of a video.
One of:
type: "sequence"
Children one after another, with transitions between them.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
childrenrequired | Node[] | The children, in play order. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
transition | TransitionChoice | null | What joins neighbours: a transition overlaps them by its duration. Default |
type: "stack"
Children over each other, each over the ones before.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
childrenrequired | Node[] | The children, each drawn over the ones before. Each starts at its own |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number for every side, or |
type: "grid"
Children in the cells of a grid, row by row.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
childrenrequired | Node[] | The cells' contents, row by row. |
columns | integer | null | Columns. Default: as square a grid as the children make. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
gap | number (float) | Pixels between cells. Default: |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number for every side, or |
length | GridLength | How long the grid lasts when its cells differ, and what a cell that ends early shows. Default Default: |
type: "media"
A video or still file.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where in its area the picture or text lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
blur | number | null | A Gaussian blur's radius, as a fraction of the picture's shorter side. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade_in | number | null | Seconds of fade in from transparent. |
fade_out | number | null | Seconds of fade out to transparent. |
fit | Fit | null | How a picture fills its area. Default |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number for every side, or |
kind | FileKind | null | What the file holds. Default: by its extension. |
label | string | null | A label a comparison grid shows on the cell. |
loop | boolean | Plays a video again from its start while the node lasts. |
muted | boolean | Silences a video's sound. |
opacity | number | null | Opacity, 0..=1. Default 1. |
pathrequired | string | The file. It becomes the source's locator and the export's asset. |
speed | number | null | Playback speed of a video: 2 plays it twice as fast. Default 1. |
trim_end | number | null | Where in the file a video ends, in seconds. Default: its end. |
trim_start | number | null | Where in the file a video starts, in seconds. |
volume | number | null | Linear gain of a video's sound. Default 1. |
zoom | array | null | A slow zoom over the node's length, |
type: "text"
Text.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where in its area the picture or text lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
background | Rgba | null | A box of this color behind each line. |
color | Rgba | null | Color. Default: the theme's text color. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default none. |
font_family | string | null | Family. Default: the theme's. |
font_size | number | null | Font size in pixels. Default: the style's. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number for every side, or |
max_lines | integer | null | The most lines it may take: with fonts to measure by, a longer text shrinks until it fits. Default: no limit. |
opacity | number | null | Opacity, 0..=1. Default 1. |
outline | Rgba | null | A band of this color around the glyphs. |
style | TextRole | The theme style it starts from. Default Default: |
textrequired | string | The text; |
type: "color"
An area painted one color.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
color | Rgba | null | The color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number for every side, or |
type: "captions"
Timed text from cues, a SubRip or WebVTT file, or word timestamps.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
color | Rgba | null | Text color. Default: the theme's. |
cues | Cue[] | Cues as given, in seconds from the node's start. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
file | string | null | A SubRip ( |
font_size | number | null | Font size in pixels. Default: the theme's caption size. |
id | string | null | The node's name, for other nodes to refer to. |
max_chars | integer | null | The longest cue words are grouped into, in characters. Default 32 on a tall canvas, 42 on a wide one. |
position | number | null | Where the text's middle lies, as a fraction of the canvas height. Default: the style's, which depends on the canvas's shape. |
srt | string | null | SubRip text. |
style | CaptionStyle | How the captions look. Default Default: |
vtt | string | null | WebVTT text. |
words | Cue[] | Words with their times, as speech recognition gives them; they are grouped into cues of up to |
type: "layout"
A layout generator: boxes, text and shapes laid out by CSS flexbox and grid, as the project writes them.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where in its area the picture or text lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number for every side, or |
rootrequired | LayoutNode | The root box, as a project's layout generator writes it. |
type: "audio"
A sound file.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
duck_depth_db | number | null | How far ducking lowers it, in dB (negative). Default -12. |
duck_under | string | null | The |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade_in | number | null | Seconds of fade in. |
fade_out | number | null | Seconds of fade out. |
id | string | null | The node's name, for other nodes to refer to. |
loop | boolean | Plays the file again from its start while the node lasts. |
pathrequired | string | The file. |
trim_end | number | null | Where in the file it ends, in seconds. Default: its end. |
trim_start | number | null | Where in the file it starts, in seconds. |
volume | number | null | Linear gain. Default 1. |
type: "raw"
Part of a project, as the project writes it: its sources, tracks and compositions, at its own times. Only as an overlay.
| Field | Type | Description |
|---|---|---|
assets | { [name]: string } | Each file a media source of the fragment reads, by source id: the export's assets. |
compositions | Composition[] | Compositions its clips show. |
sources | MediaSource[] | Sources its tracks read. Their ids must not be the compiler's ( |
tracks | Track[] | Tracks drawn over what comes before, at timeline times. |
type: "slideshow"
Stills or clips in turn, with transitions and slow zooms.
| Field | Type | Description |
|---|---|---|
at | number | null | When it starts in its parent; its length is the slides'. |
fit | Fit | null | How slides fill the canvas. Default |
fit_to | string | null | A sound file whose length the slides share out. It is not played: add it as a music bed. |
id | string | null | The node's name, for other nodes to refer to. |
itemsrequired | MediaItem[] | The slides. |
ken_burns | number | null | How far each slide zooms in over its time, as a multiple: 1.15 ends 15% larger. Default none. |
seconds | number | null | How long each slide shows, transitions included, in seconds. Default: |
transition | TransitionChoice | null | What joins slides. Default |
type: "captioned_video"
A video under its captions.
| Field | Type | Description |
|---|---|---|
at | number | null | When it starts in its parent; its length is the video's. |
captionsrequired | CaptionsNode | The captions, timed from the video's start. |
fit | Fit | null | How the video fills the canvas. Default |
id | string | null | The node's name, for other nodes to refer to. Its sound is the video's. |
videorequired | MediaItem | The video. |
type: "title"
A title (and subtitle) over what is under it, laid out on the whole canvas.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where it lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
background | Rgba | null | A card's color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
subtitle | string | null | A smaller line under it. |
textrequired | string | The title. |
type: "title_card"
A title (and subtitle) on the theme's surface, over the whole canvas.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where it lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
background | Rgba | null | A card's color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
subtitle | string | null | A smaller line under it. |
textrequired | string | The title. |
type: "lower_third"
A name and role in the canvas's lower left.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
subtitle | string | null | The role, under it. |
textrequired | string | The name. |
type: "end_card"
A closing card over the whole canvas: a logo, a title and a subtitle on the theme's surface.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
background | Rgba | null | The card's color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
logo | string | null | A picture above the title. |
subtitle | string | null | A smaller line under it. |
textrequired | string | The title. |
type: "comparison_grid"
Clips side by side in a grid, each labeled.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
audio_from | integer | null | Which item's sound plays, by index. Default: none. |
columns | integer | null | Columns. Default: as square a grid as the items make. |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
gap | number (float) | Pixels between cells. Default: |
id | string | null | The node's name, for other nodes to refer to. |
itemsrequired | MediaItem[] | The clips, row by row; each one's |
length | GridLength | How long the grid lasts when its clips differ. Default Default: |
type: "reframe"
A video fitted to a canvas of another shape, over a blurred copy of itself.
| Field | Type | Description |
|---|---|---|
at | number | null | When it starts in its parent; its length is the video's. |
blur | number | null | The background's blur radius, as a fraction of its shorter side. Default 0.05. |
id | string | null | The node's name, for other nodes to refer to. Its sound is the video's. |
videorequired | MediaItem | The video. |
type: "logo"
A picture in a corner.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
corner | Align | null | The corner. Default |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
margin | number | null | Pixels from the edges. Default: the theme's margin. |
opacity | number | null | Opacity, 0..=1. Default 1. |
pathrequired | string | The picture. |
size | number | null | Its longer side, in pixels. Default: 15% of the canvas's shorter side. |
type: "music_bed"
Music under the video, faded in and out and ducked under speech.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence, which places its children one after another. |
duck_depth_db | number | null | How far ducking lowers it, in dB (negative). Default -12. |
duck_under | string | null | The |
duration | number | null | Length in seconds. Default: the node's own (a video's, a caption file's), else what its parent gives it. |
fade_in | number | null | Seconds of fade in. Default 1. |
fade_out | number | null | Seconds of fade out at the end. Default 2. |
id | string | null | The node's name, for other nodes to refer to. |
loop | boolean | Plays the file again from its start while the video lasts. Default true. Default: |
pathrequired | string | The file. |
volume | number | null | Linear gain. Default 1. |
NodeId
A stable identifier of a node within one composition graph. It has no /, which joins the IDs of the group and media nodes a step was drawn through.
Type: string
NodeOp
The operation of a CompositionNode.
Animated settings are keyed in composition time (see ClipComposition), not timeline time.
One of:
type: "clip"
The picture of the clip showing the composition: its source at the source time the clip's time map gives, or what its generated source draws.
type: "media"
Another visual source, read at start plus the composition time. A media node adds no sound to the mix.
type: "generator"
A picture the engine draws.
| Field | Type | Description |
|---|---|---|
generatorrequired | Generator | What is drawn. |
type: "effect"
A registered effect: its input and the named images it samples besides.
| Field | Type | Description |
|---|---|---|
effectrequired | ClipEffect | The versioned effect and its parameters. |
input | NodeId | null | The image the effect processes; a bypassed node passes it through. Default: |
inputs | { [name]: NodeId | null } | The images the effect samples besides its input, by the names its definition declares ( |
type: "transition"
A registered two-input transition at an explicit progress.
| Field | Type | Description |
|---|---|---|
effectrequired | ClipEffect | The versioned transition and its parameters. |
from | NodeId | null | The image at progress zero. Default: |
progressrequired | Animated_float | Progress through the transition, in |
to | NodeId | null | The image at progress one. Default: |
type: "transform"
The input placed on the canvas by a transform and opacity.
| Field | Type | Description |
|---|---|---|
input | NodeId | null | The image placed. Default: |
transform | VisualProperties | Position, anchor, scale, rotation, and opacity. Default: |
type: "merge"
Ordered layers composited over transparency.
| Field | Type | Description |
|---|---|---|
layers | MergeLayer[] | Layers from bottom to top. Default: |
type: "matte"
The input kept where a second image says.
type: "shape_mask"
The input kept inside shapes.
type: "group"
Another composition drawn in this one's time, as a group: its output, with its group inputs fed from inputs and its controls set from controls.
| Field | Type | Description |
|---|---|---|
compositionrequired | CompositionId | The composition drawn. |
controls | { [name]: Animated_EffectValue } | Values for its controls, by name; a control not set keeps the composition's own value. Keyed in composition time. |
inputs | NodeId | null[] | The image for each of its inputs, in its port order. Default: |
type: "group_input"
In a composition used as a group, the image the group node gives its input index.
| Field | Type | Description |
|---|---|---|
indexrequired | integer (uint32) | The input, in the composition's port order. |
Overflow
Whether content past a box's padding box is drawn.
"visible"Drawn."hidden"Clipped to the padding box.
Paint
A color or gradient.
Gradients interpolate between stops premultiplied, in linear light: the engine's working space, so a gradient between two colors passes through the physical mix of them, and a stop fading to transparent does not darken its neighbour.
A color (hex or object) is read as a solid paint of it; a paint is written back tagged.
One of:
type: "linear_gradient"
Colors along the line from start to end, constant across it.
| Field | Type | Description |
|---|---|---|
endrequired | Vec2 | Where offset 1 lies. Distinct from |
spread | Spread | What lies beyond the first and last offsets. Default: |
startrequired | Vec2 | Where offset 0 lies. |
stopsrequired | GradientStop[] | Two to |
type: "radial_gradient"
Colors along the radius of a circle.
| Field | Type | Description |
|---|---|---|
centerrequired | Vec2 | Where offset 0 lies. |
radiusrequired | number (float) | The distance of offset 1 from the centre, as a fraction of the picture's shorter side. Positive. |
spread | Spread | What lies beyond the first and last offsets. Default: |
stopsrequired | GradientStop[] | Two to |
type: "conic_gradient"
Colors around a point: offsets 0 to 1 are one clockwise turn.
| Field | Type | Description |
|---|---|---|
angle_degrees | number (float) | Where offset 0 lies, in degrees clockwise from straight up. Default: |
centerrequired | Vec2 | The point the gradient turns around. |
stopsrequired | GradientStop[] | Two to |
<a href="#rgba">Rgba</a>
Path
One or more subpaths.
| Field | Type | Description |
|---|---|---|
subpathsrequired | Subpath[] | The subpaths, at most |
PathVertex
A path vertex and its tangents. The segment from vertex a to vertex b is the cubic Bezier through a.point, a.point + a.out_tangent, b.point + b.in_tangent, and b.point; zero tangents make it straight.
PointKeyframe
One keyframe of an AnimatedPoint.
| Field | Type | Description |
|---|---|---|
in_tangent | Vec2 | The end of the way here from the previous keyframe's value, relative to this value: that curve's second control point. |
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor: how fast the value travels along the way there. |
out_tangent | Vec2 | The start of the way to the next keyframe's value, relative to this value: the curve's first control point. |
timerequired | MediaTime | Timestamp of this value, as a |
valuerequired | Vec2 | Value at |
PolystarKind
What kind of figure a polystar is.
"star"Points joined by inner corners."polygon"Points joined by straight sides.
Position
Whether a box is in its parent's flow.
"relative"In the flow."absolute"Out of the flow, placed byinset.
ProviderSource
A source whose media an extension provider supplies, rather than the host's video and image decoders.
A host picks the provider by probing the bytes at import, never by a file name, and records it here with the settings the source needs, so every host opens the source the same way. The engine does not read it: a provider source needs frames like any video or image source.
One of:
format: "svg"
A static SVG document, rasterized at the size it is shown. The source's kind is image.
format: "animated_image"
A GIF, animated WebP, or APNG: one cycle of frames, each with its own duration. Repetition is the clip's. The source's kind is video.
format: "lottie"
A Lottie animation, from a Lottie JSON file or a dotLottie package, evaluated at its own frames. The source's kind is video.
| Field | Type | Description |
|---|---|---|
animation | string | null | The dotLottie animation shown, by its ID; the package's first when absent, and absent for a Lottie JSON file. |
format: "image_sequence"
Still images played in order at a fixed rate. The source's kind is video.
| Field | Type | Description |
|---|---|---|
frame_raterequired | FrameRate | The rate the frames play at. |
framesrequired | string | null[] | Each frame's locator, in play order. |
missing | MissingFrames | How a missing frame is shown. Default: |
primaries | LinearPrimaries | null | The primaries OpenEXR frames' linear RGB is in, overriding what the first frame's chromaticities say. Only for OpenEXR frames. |
start_number | integer (uint64) | The number of the first frame, as its file was numbered. Default: |
format: "exr"
A still OpenEXR image: linear-light RGB(A), read at half precision. The source's kind is image.
| Field | Type | Description |
|---|---|---|
primaries | LinearPrimaries | null | The primaries its linear RGB is in, overriding what the file's chromaticities say (BT.709 when it says nothing, as OpenEXR defines). |
Rgba
A straight (not premultiplied), sRGB-encoded color with alpha, each component in 0..=1.
Written as the object, or as CSS hex: "#rgb", "#rgba", "#rrggbb" or "#rrggbbaa", any case, each digit pair a component times 255. It is written back as the object: a component need not be a multiple of 1/255.
One of:
object
| Field | Type | Description |
|---|---|---|
alpharequired | number (float) | Coverage. |
bluerequired | number (float) | Blue component. |
greenrequired | number (float) | Green component. |
redrequired | number (float) | Red component. |
string
ShapeGeometry
A geometry alone, as a mask's outline is.
One of:
type: "rectangle"
A rectangle, optionally with rounded corners.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
corner_radius | Animated_float | Corner radius, as a fraction of the shorter side. Non-negative; a radius past half the rectangle is capped. Default: |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height, before rotation, per axis: x a fraction of the picture's width, y of its height. Non-negative. |
type: "ellipse"
An ellipse.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height, before rotation, per axis: x a fraction of the picture's width, y of its height. Non-negative. |
type: "polystar"
A regular polygon or star.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
inner_radius | Animated_float | A star's distance of its inner corners from the centre. Non-negative. Default: |
inner_roundness | Animated_float | How round a star's inner corners are, in Default: |
kindrequired | PolystarKind | A polygon or a star. |
outer_radiusrequired | Animated_float | Distance of the points from the centre, as a fraction of the shorter side. Non-negative. |
outer_roundness | Animated_float | How round the outer corners are: 0 sharp, 1 a smooth curve through them. In Default: |
pointsrequired | Animated_float | Number of points (corners of a polygon, tips of a star), from |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
ShapeItem
One entry of a shapes generator's content tree.
A group is read front to back. Geometry accumulates in its group; a fill or a stroke paints the geometry listed before it in the same group, nested groups before it included; a trim cuts that geometry and replaces it. A paint listed earlier is drawn on top of one listed later, as in After Effects and Lottie.
One of:
type: "group"
Items drawn together, through one transform and opacity. Their geometry also counts as the enclosing group's, for the paints and trims after the group.
| Field | Type | Description |
|---|---|---|
itemsrequired | ShapeItem[] | The group's items, front first. |
transform | ShapeTransform | Where the group lies, and how opaque it is. Default: |
type: "rectangle"
A rectangle, optionally with rounded corners.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
corner_radius | Animated_float | Corner radius, as a fraction of the shorter side. Non-negative; a radius past half the rectangle is capped. Default: |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height, before rotation, per axis: x a fraction of the picture's width, y of its height. Non-negative. |
type: "ellipse"
An ellipse.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height, before rotation, per axis: x a fraction of the picture's width, y of its height. Non-negative. |
type: "polystar"
A regular polygon or star.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
inner_radius | Animated_float | A star's distance of its inner corners from the centre. Non-negative. Default: |
inner_roundness | Animated_float | How round a star's inner corners are, in Default: |
kindrequired | PolystarKind | A polygon or a star. |
outer_radiusrequired | Animated_float | Distance of the points from the centre, as a fraction of the shorter side. Non-negative. |
outer_roundness | Animated_float | How round the outer corners are: 0 sharp, 1 a smooth curve through them. In Default: |
pointsrequired | Animated_float | Number of points (corners of a polygon, tips of a star), from |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
type: "fill"
Paints the inside of the geometry listed before it in its group, all of it as one compound path under rule. An open path is closed for it.
| Field | Type | Description |
|---|---|---|
opacity | Animated_float | Opacity in Default: |
paintrequired | Animated_Paint | What covers it. |
rule | FillRule | Which regions of the compound path are inside. Default: |
type: "stroke"
Strokes the geometry listed before it in its group.
| Field | Type | Description |
|---|---|---|
cap | LineCap | How open ends look. Default: |
dash | Dash | null | Dashes, or a solid stroke when absent. Default: |
join | LineJoin | How segments meet. Default: |
miter_limit | number (float) | Longest a miter join reaches, as a multiple of half the width, before it is beveled. At least 1. Default: |
opacity | Animated_float | Opacity in Default: |
paintrequired | Animated_Paint | What covers the stroke. |
widthrequired | Animated_float | Full width, as a fraction of the shorter side. Non-negative; zero draws nothing. |
type: "trim"
Keeps part of the geometry listed before it in its group, by length.
| Field | Type | Description |
|---|---|---|
endrequired | Animated_float | Where it ends, in |
mode | TrimMode | Whether the span is of all the geometry together or of each part. Default: |
offset | Animated_float | Turns the span is shifted by; it wraps around a closed path. Default: |
startrequired | Animated_float | Where the kept span starts, as a fraction of the length, in |
ShapeMask
A shape that limits where a clip is visible.
Geometry is in the clip's source space, before its transform, so the mask moves with the clip: (0, 0) is the source's top-left corner and (1, 1) its bottom-right. Distances (feather, a rectangle's corner_radius, a polystar's radii) are fractions of that space's shorter side, so a mask covers the same part of the picture at any render resolution.
| Field | Type | Description |
|---|---|---|
feather | Animated_float | How soft the edge is. Non-negative; zero is the outline's antialiased edge. The coverage is blurred by a Gaussian of standard deviation Default: |
fill_rule | FillRule | Which regions of the outline are inside it. Default: |
invert | boolean | Whether the mask keeps the outside of the shape instead of its inside. Default: |
mode | MaskMode | How this mask combines with the ones before it. Default: |
shaperequired | ShapeGeometry | The shape's outline, as a shapes generator's geometry. |
ShapeTransform
A group's placement: in pixel space, translate by position, rotate, scale, and translate by minus anchor, so anchor lands on position. The default leaves its items where they are.
| Field | Type | Description |
|---|---|---|
anchor | Animated_Vec2 | The point of the items that is placed at Default: |
opacity | Animated_float | Opacity of the group as a whole, in Default: |
position | AnimatedPoint | Where Default: |
rotation_degrees | Animated_float | Clockwise rotation, in degrees. Default: |
scale | Animated_Vec2 | Per-axis scale; 1 leaves the items unscaled. Stroke widths scale with it. Default: |
SourceId
A stable media-source identifier.
Type: string
Spread
What a linear or radial gradient shows outside its first and last stops.
"pad"The end colors continue."repeat"The gradient starts again."reflect"The gradient runs back and forth.
StreamTopology
The streams a media file carries.
| Field | Type | Description |
|---|---|---|
audio | AudioStreamShape | null | The primary audio stream, if there is one. |
video | VideoStreamShape | null | The primary video stream, if there is one. |
Subpath
A run of vertices joined by cubic Bezier segments.
| Field | Type | Description |
|---|---|---|
closed | boolean | Whether a segment joins the last vertex back to the first. Default: |
verticesrequired | PathVertex[] | The vertices, in order. |
TextAlign
How lines of text align within it.
"start"Left."center"Centred."end"Right.
TextBackground
A box behind each line of text.
| Field | Type | Description |
|---|---|---|
colorrequired | Rgba | Box color. |
padding | number (float) | Space between the text and the box edge, as a fraction of the font size, in Default: |
TextOutline
A band around the glyphs, drawn behind them.
| Field | Type | Description |
|---|---|---|
colorrequired | Rgba | Band color. |
widthrequired | number (float) | Band width as a fraction of the font size, in |
TextRole
A theme text style.
"title"The largest."subtitle"Under a title."body"Running text."label"A cell's label.
TextStyle
How text looks and where it lies: a caption track's cues, or a text Generator.
Sizes are resolution-independent: the font size is a fraction of the canvas's shorter side, as every other length is, the wrapping width a fraction of the canvas width, and the outline and background padding fractions of the font size. The engine draws with the fonts its host registered: those of font_family first, then the rest in their fallback order.
| Field | Type | Description |
|---|---|---|
align | TextAlign | How lines align within the text. Default: |
anchor | Vec2 | The point of the text, background included, placed at Default: |
background | TextBackground | null | A box behind each line. Default: |
color | Rgba | Text color. Default: |
font_family | string | null | The family the text draws in, as the font's own name table gives it (typographic family, else family), matched without regard to ASCII case. Glyphs its fonts lack, and a family no registered font has, draw from the other fonts in fallback order. |
font_size | number (float) | Font size as a fraction of the canvas's shorter side: positive, at most Default: |
font_weight | integer (uint16) | The weight, in Default: |
letter_spacing | number (float) | Space after each character, as a fraction of the font size, in Default: |
line_height | number (float) | Baseline-to-baseline distance in font sizes, in Default: |
max_width | number (float) | Width text wraps at, as a fraction of the canvas width, in Default: |
outline | TextOutline | null | A band around the glyphs. Default: |
position | Vec2 | Where on the canvas the text's anchor lies, Default: |
Theme
How text, panels and timings look. Every part left out is the base theme's. Sizes are fractions of the canvas's shorter side, so a theme looks the same on a wide and a tall canvas.
| Field | Type | Description |
|---|---|---|
accent | Rgba | null | A highlight: a lower third's bar. |
background | Rgba | null | The canvas background. |
base | string | null | The built-in theme this one changes. Default |
body_size | number | null | Body text size. |
caption_size | number | null | Caption size. |
fade_seconds | number | null | How long text and cards fade in and out, in seconds. |
font_family | string | null | The family text draws in, as the font names it. Unset, text draws in the first font an export registers. |
label_size | number | null | Label size: a grid cell's. |
margin | number | null | The space kept clear at the canvas's edges. |
panel | Rgba | null | The boxes behind labels, lower thirds and boxed captions. |
still_seconds | number | null | How long a still shows when nothing says, in seconds. |
subtitle_size | number | null | Subtitle size. |
surface | Rgba | null | What title and end cards are drawn on. |
text | Rgba | null | Text color. |
text_seconds | number | null | How long a card or text shows when nothing says, in seconds. |
title_size | number | null | Title size. |
transition | Transition | null | The transition a slideshow, or a sequence asking for |
ThemeChoice
A theme by name, or one built on a named theme.
One of:
string
A built-in theme: clean-dark or clean-light.
<a href="#theme">Theme</a>
A theme of its own.
TimeMap
How a clip plays its source range over its timeline range.
forward and reverse stretch the source range over the timeline range, so their speed is the ratio of the two. A loop plays the source range at its own speed, again and again, for as long as the timeline range lasts.
One of:
type: "forward"
From the start of the source range to its end.
type: "reverse"
From the end of the source range to its start: pictures in reverse order and sound played backwards.
type: "freeze"
One source instant for the whole clip, and silence.
| Field | Type | Description |
|---|---|---|
source_timerequired | MediaTime | The instant shown; inside the source range. |
type: "loop"
The source range again and again, at its own speed.
| Field | Type | Description |
|---|---|---|
moderequired | LoopMode | How each pass follows the one before. |
TimeRange
A half-open timeline interval [start, end).
TimeScale
A positive rational rate of one time against another.
| Field | Type | Description |
|---|---|---|
denrequired | integer (uint32) | Denominator; positive. |
numrequired | integer (uint32) | Numerator; positive. |
Track
A homogeneous visual or audio timeline lane.
| Field | Type | Description |
|---|---|---|
audio | TrackAudio | Bus controls applied to this track's mixed audio. Default: |
captions | Captions | null | The cues and style of a caption track; present exactly for that kind. Default: |
clips | Clip[] | Clips on this track. Ordering is authoring order; evaluation sorts by time. A caption track has none. Default: |
idrequired | TrackId | Stable track identity. |
kindrequired | TrackKind | Controls source compatibility and evaluation behavior. |
namerequired | string | User-visible track name. |
transitions | ClipTransition[] | Explicit transitions between overlapping clips on this track. Default: |
TrackAudio
Per-track audio bus controls.
| Field | Type | Description |
|---|---|---|
ducking | Ducking | null | Optional sidechain attenuation driven by another track. Default: |
effects | AudioEffect[] | Ordered single-input effects applied to the summed clip signal, at most Default: |
gain | Animated_float | Animated linear bus amplitude constrained to Default: |
muted | boolean | Silences this bus. Default: |
pan | Animated_float | Animated stereo position applied after the clip mix, from Default: |
solo | boolean | Restricts the mix to soloed buses when any track sets this. Default: |
TrackId
A stable timeline-track identifier.
Type: string
TrackKind
The media domain accepted by a track.
"video"A composited visual track."audio"A mixed audio track."caption"Timed text, drawn over the tracks before it and under the ones after.
TrackList
A grid track list as CSS writes it: "1fr 2fr 120px", "repeat(3, minmax(100px, 1fr))", "repeat(auto-fill, 160px)", "auto min-content max-content", "fit-content(200px)". A bare number is a fraction of the picture's shorter side. Named lines are not supported.
Type: string
TransferFunction
Encoded transfer curve.
"bt709"BT.709 opto-electronic transfer function."srgb"IEC sRGB transfer function."pq"Perceptual quantizer HDR transfer function."hlg"Hybrid log-gamma HDR transfer function.
Transition
The transition between two neighbours of a sequence.
| Field | Type | Description |
|---|---|---|
durationrequired | number (double) | How long the neighbours overlap, in seconds. |
easing | Easing | null | The timing curve. Default linear. |
params | { [name]: Animated_EffectValue } | The effect's parameters by name. |
typerequired | string |
|
version | integer | null | The effect definition's version. Default 1. |
TransitionChoice
A sequence's transitions: none, the theme's, or one given.
One of:
string
none for cuts, theme for the theme's transition, or a transition name at the theme's duration.
<a href="#transition">Transition</a>
A transition.
TrimMode
What a trim measures.
"together"One span over the length of every subpath end to end, in order."individually"A span of each subpath alone.
Vec2
A two-dimensional value in normalized output coordinates.
| Field | Type | Description |
|---|---|---|
xrequired | number (float) | Horizontal component. |
yrequired | number (float) | Vertical component. |
VideoStreamShape
A video stream's displayed size and frame rate.
| Field | Type | Description |
|---|---|---|
frame_rate | FrameRate | null | The rate its first frames are presented at, as every host measures it from packet times and rounds it ( |
heightrequired | integer (uint32) | Displayed height in square pixels: the stored height stretched by a pixel aspect ratio taller than wide, then turned. |
widthrequired | integer (uint32) | Displayed width in square pixels: the stored width stretched by a pixel aspect ratio wider than tall, then turned by the stream's orientation. |
VisualProperties
Resolution-independent visual presentation controls for a clip.
Each field a document leaves out takes its default: the source centred on the canvas, unscaled, unrotated and opaque.
| Field | Type | Description |
|---|---|---|
anchor | Vec2 | Unanimated normalized point within the source rectangle. Default: |
opacity | Animated_float | Animated opacity constrained to Default: |
position | AnimatedPoint | Animated normalized canvas translation, along spatial curves where its keyframes have tangents. Default: |
rotation_degrees | Animated_float | Animated clockwise rotation in degrees. Default: |
scale | Animated_Vec2 | Animated per-axis scale. Default: |
