SDL Reference
This is the complete field-by-field reference for the ImpossibleFX Scene Description Language (SDL) format, generated from the protocol buffer definition (Movie.proto). For a guided introduction and scripting examples, see the SDL Scripting guide.
Core Structure
Movie
Movie is the main message of the SDL. It consists of Scenes and an Audio object for the whole movie. It also specifies Video and Audio parameters.
UnexpectedFrameSizeSolution
| Value | Description |
|---|---|
UFS_SCALE | |
UFS_LETTERBOX | |
UFS_COPY | |
UFS_NONE |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
params | StreamParams | Yes | — | Audio and Video parameters |
scenes | Scene[] | No | — | An array of Scenes that describes the movie content |
audio | Audio | No | — | An Audio object that handles Audio during the whole movie. Additional audio tracks are mixed on top of this Audio track |
loop | Boolean | No | false | Parameter for an endless looping stream (will be ignored for RenderMovie/RenderImagesequence) |
initatstart | Boolean | No | false | Initialise all variables in the movie at startup (sacrificing "time to first byte") |
metadata | Metadata[] | No | — | Metadata for accounting/logging/etc. |
audiovarinfo | VariableInformation | No | — | Variable information for movie audio tracks |
ufssolution | UnexpectedFrameSizeSolution | No | UFS_SCALE | |
posterframe | Integer | No | 0 | |
compositions | Scene[] | No | — | |
videofailfast | Boolean | No | false | Flag to change video error behavior, if set to true errors in the video part of a movie will lead to renderfailure instead of gracefull skip/handle |
usepacketcache | Boolean | No | true | Flag to enable/disable packet caching, default is true |
scenedefinitions | Scene[] | No | — | scene definitions that can be referenced by their referenceid |
Scene
A Scene message describes one part (i.e. a sequence of frames) of a movie A scene consist of a number of VisualTracks layered on top of each other and a scene specific Audio object If a Scene has no dynamic content it is static and can be preencoded
Type
| Value | Description |
|---|---|
normal | A scene providing visual content through VisualTracks in tracks and audio content through Audio and AudioTracks from audio |
scenebased | A scene defering to the SceneView sceneview for visual and audio content |
reference | A scene referencing another scene contained in the movies scene reference section |
NumframesFromMode
| Value | Description |
|---|---|
numframesfrommode_video | |
numframesfrommode_audio | |
numframesfrommode_max | |
numframesfrommode_min |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | — | The type of scene |
numframes | Integer | No | — | Number of frames this scene has, the length of the whole movie is determined by adding up all frames of all scenes If left out or <0 the scene tries to determine it's length by checking the content of it's tracks for videos |
editoverlap | Integer | No | — | Number of frames overlapping in edit situations e.g. crossfade transitions. Adjusts numframes, usually should be negative e.g. -25 |
static | Boolean | No | true | Turns off the preencoding of this scene, when set to false; mainly used for testing purposes |
content | ImageProvider | No | — | deprecated: the base content should now be introduced through the first Visualtrack for more flexibility |
tracks | VisualTrack[] | No | — | The visual content of this scene as a sequence of layers |
audio | Audio | No | — | The scene specific Audio |
subtitles | Subtitles | No | — | (Deprecated) A subtitle object to allow optimization through preencoding for subtitle overlay frames |
varinfo | VariableInformation | No | — | keys and possible values to allow semi static preencoding |
canbeempty | Boolean | No | false | Do not throw error if this scene has no content |
name | String[] | No | — | Name or names for this scene |
posterframe | Integer | No | 0 | Poster frame |
useaudioforlength | Boolean | No | false | (Deprecated) Use the audio to determine length of scene. Deprecated use *numframesfrommode*, instead |
numframesfrommode | NumframesFromMode | No | numframesfrommode_video | When numframes is not set, how to determine the length of scene. Supercedes *useaudioforlength*, if both are set |
id | String | No | — | An optional ID |
enablevariable | StringVariable | No | — | The variable that dynamically enables or disables this scene |
invertenable | Boolean | No | false | Reverse enablesvariables logic |
sceneview | SceneView | No | — | [scenebased] The sceneview to use for this scenes content |
referenceid | String | No | — | [reference] The id by which to identify the scene referenced from the scenedefinitions |
variablemapping | VarMapping[] | No | — | [reference] Mapping that changes the variables accessible in the refernenced scene, a variable with key *key* and the same value as either *stringvariable* or *pointsvariable* is added to the variable dictionary for the referenced scene. If *key* was already in that dictionary the value is replaced. * |
SceneView
A SceneView is a container for either SceneViewVariants or EmbeddedScenes
Type
Type
| Value | Description |
|---|---|
embedded | Scenes are define inline in the scenes array |
file | (Deprecated) @deprecated file based scene definitions |
variant | This scene consists of multiple variants defined in the variants field. Which variant to play is determined through the value of the variable |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | embedded | Type of SceneView |
scenes | Scene[] | No | — | The embedded scenes |
endbehaviour | EndBehaviour | No | repeatlast | What to do if SceneView has fewer frames than required by container |
source | FileLocation | No | — | |
variants | SceneViewVariant[] | No | — | All possible variants for this scene |
variable | StringVariable | No | — | Variable to use to select active variant |
width | Integer | No | — | |
height | Integer | No | — | |
keys | String[] | No | — | for file type sceneviews this has to hold the keys used for variables in the scenes to not interfere with preencoding |
filelocationprefixholder | String | No | — | This is used to hold the filelocationprefix to use it to complete loaded SDL files |
videoframerate | Fractional | No | — | experimental, used to convert framerate of inner scenes, use on own risk |
SceneViewVariant
A SceneViewVariant message is a lookup map that assigns scenes to key values. When requesting movies that contain SceneViews the query parameter determines which scene to select.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
key | String | Yes | — | SceneView's name (used to select this variant via query parameter |
scenes | Scene[] | No | — | Array of scenes to play when this variant is active |
Visual Content
VisualTrack
As part of the image processing pipeline, VisualTracks create, transform and composite visual contents onto a background buffer. The background buffer for each VisualTrack is the composite of all previous VisualTracks (or the frame buffer in case of the first VisualTrack) in the layer stack. When a content is defined, the VisualTrack will transform this content by executing all transformations defined in the transformations array. When no content is defined transformations will be executed upon the background buffer (“Adjustment tracks”). In and out point of a VisualTrack (offset and numframes) define the timing of this track within its scene. The length can also be dyamically provided through the numframesvariable property. VisualTracks can be dynamically enabled or disabled by providing a enablevariable. If the variable evaluates to false (or not set) the entire track is disabled (as if it does not exist). To disable individual transformations, see the enablevariable in Transformation type.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
content | ImageProvider | No | — | base content of this VisualTrack |
numframes | Integer | No | -1 | number of frames of this VisualTrack, if not specified it will provide content until the end of the scene |
editoverlap | Integer | No | — | Number of frames overlapping in edit situations e.g. crossfade transitions. Adjusts numframes, usually should be negative e.g. -25 |
offset | Integer | No | 0 | offset to change the starting point of this VisualTrack relative to the start of the scene (negative values give undefined behaviour) |
x | Integer | No | 0 | options for compositing offsets of layer content |
y | Integer | No | 0 | |
center | Boolean | No | false | automatic centering for the compositing of background and layer content (center is deprecated, use centerx centery instead) |
centerx | Boolean | No | false | |
centery | Boolean | No | false | |
maskchannel | Integer | No | 0 | (Deprecated) Image channel to use for masking |
invertmask | Boolean | No | false | (Deprecated) Invert mask |
mask | ImageProvider | No | — | (Deprecated) Mask content using this mask |
transformations | Transformation[] | No | — | Array of Transformations, that are applied to either the content or the background buffer |
blendmode | BlendMode | No | normal | Blendmode for the compositing operation |
opacity | Number | No | 1.0 | Alpha (opacity) for the compositing operation |
opacityfunction | Function | No | — | Animate opacity over time using this function |
adjustalpha | Boolean | No | false | Compute destination alpha after compositing |
enablevariable | StringVariable | No | — | Dynamically enable this VisualTrack through this variable |
invertenable | Boolean | No | false | Invert the logic of the `enablevariable` |
name | String[] | No | — | Name(s) for this track |
positions | TrackData | No | — | Track data |
ignorelength | Boolean | No | false | Ignore any provided `numframes*` properties. Length will be computed through other tracks |
numframesvariable | StringVariable | No | — | Variable for dynamic length of the VisualTrack |
offsetvariable | StringVariable | No | — | Variable for dynamic offset of the VisualTrack |
ImageProvider
An ImageProvider object provides an image given a particular frame number There are basically two types: a SingleImage provides the same image every time and an Imagesequence that provides different images for different frame numbers (e.g. a video, other SDLs)
Type
Type of ImageProvider
| Value | Description |
|---|---|
stillimage | One single frame image |
manipulatedimage | An single-frame image generated from an array of VisualTracks. Use to create multi-layered images, transformed or filtered images |
emptyimage | An empty single-frame image with specified size and color |
http | An image loaded from a URL over http |
jetcom | An image loaded from a URL using the jetcom protocol |
textsimple | A rendered text |
gradient | A rendered gradient |
imagesequence | A sequence of images loaded from disk |
image32fsequence | A sequence of 32bit floating point images loaded from disk |
textcurved | A sequence generated by rendering Text between to (moving) lines |
textquad | A sequence generated by rendering Text into a moving Quad |
textmultiline | A sequence generated by rendering Text (inserting linebreaks) into a moving Quad |
decoder | (Deprecated) @deprecated A sequence decoded form a video |
video | A video as zipped image sequence or video file, with scale aware disk cache |
livevideo | http live video stream |
scenebased | Image sequences created by rendering a Scene or SceneVariant object |
comicbook | Internal. Will be moved to a SDL extension module in the future |
custom | Internal. |
masksource | An image provider that can act as a matte for a compose operation |
piechart | Draw (and animate) a pie chart. |
barchart | Draw (and animate) a bar chart |
imagebarchart | Draw (and animate) a bar chart made from images |
linechart | Draw (and animate) a line chart |
bezier | Draw (and animate) a bezier line |
path | Draw and fill (and animate) a bezier-based shape |
string | Image data as data url or SVG+XML from a variable |
TextAlignment
Horizontal Alignment options for textsimple
| Value | Description |
|---|---|
flushleft | |
centered | |
flushright |
TextPosition
Vertical lignment options for textsimple
| Value | Description |
|---|---|
top | |
middle | |
bottom |
TextureStyle
Image texture fill styles
| Value | Description |
|---|---|
texturestyle_line | |
texturestyle_full | |
texturestyle_tiled | |
texturestyle_tiledline | |
texturestyle_segments | |
texturestyle_tiledsegments |
TextGlyphColorMode
| Value | Description |
|---|---|
textglyphcolormode_default | default mode, use color or texture configured |
textglyphcolormode_fontembedded | sue font embedded color information, used for bitmap fonts or embedded SVG, etc. |
TextOverflowBehaviour
| Value | Description |
|---|---|
textoverflowbehaviour_none | Do nothing, let text overflow the box |
textoverflowbehaviour_scale_x | |
textoverflowbehaviour_fs_y_scale_x | |
textoverflowbehaviour_fs | |
textoverflowbehaviour_ref |
TextWritingMode
| Value | Description |
|---|---|
textwritingmode_lrtb | |
textwritingmode_lrbt | |
textwritingmode_tblr | |
textwritingmode_tbrl |
TextCharacterPositionMode
| Value | Description |
|---|---|
charposition_charbased | Use the bounding box of the individual character |
charposition_fontbased | Use the extent of the individual character in writing direction, but use font based maxima in non-writing direction. I.e. this makes the height consistent for horizontal text even when the text changes |
GradientDescriptionType
| Value | Description |
|---|---|
gradientdesctype_embedded | Use the gradient description specified via ‘gradientdescription’ parameter |
gradientdesctype_string | Parse the string specified via ‘gradientdescriptionvariable’ parameter |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | Yes | — | The type of this ImageProvieder |
numframes | Integer | No | -1 | [video, decoder, imagesequence, image32fsequence] The number of frames that are rendered Only needed if you want to return less frames than scene length (Masking only) |
source | FileLocation | No | — | [stillImage, url, imagesequence, image32fsequence] Image source. [decoder, video] Video source. [textsimple, textagg, textquad, textmultiline] Font source |
tracks | VisualTrack[] | No | — | [manipulatedimage] An array of VisualTracks for compositing the image |
width | Integer | No | — | [emptyimage, textsimple, textagg, textquad, textmultiline] Width of the provided image, used if it can not be inferred from other parameters |
height | Integer | No | — | [emptyimage, textsimple, textagg, textquad, textmultiline] Height of the provided image, used if it can not be inferred from other parameters |
color | Color | No | — | [textsimple, textagg, textquad, textmultiline] Text Color. [emptyimage] Background Color |
trackdata | TrackData | No | — | [textquad, textmultiline] Tracking data for text path |
trackdatatop | TrackData | No | — | [textcurved] Description of the tracking data for the two curves |
trackdatabottom | TrackData | No | — | [textcurved] Description of the tracking data for the two curves |
fontsize | Integer | No | 40 | [textsimple, textagg, textquad, textmultiline] Font size (deprecated) |
fontsize_d | Number | No | 40 | [textsimple, textagg, textquad, textmultiline] Font size |
fontsize_function | Function | No | — | [textsimple, textagg, textquad, textmultiline] Animation function for font size |
baselength | Integer | No | 80 | [textagg, textquad, textquad, textmultiline] Base length of text |
baseheight | Integer | No | 12 | [textagg, textquad, textquad, textmultiline] Base height of text |
numinterpoints | Integer | No | 50 | [textagg, textquad, textquad, textmultiline] Number of step for font smoothing |
linechars | Integer | No | 50 | [textmultiline] Average number of characters per line |
center | Boolean | No | false | [textsimple, textagg, textquad, textmultiline] Enable horizotal text centering |
text | StringVariable | No | — | [textsimple, textagg, textquad, textmultiline] The text to render |
scale | Number[] | No | — | [textagg, textquad, textmultiline] Scale factor for tracking data |
videooffset | Integer | No | 0 | (Deprecated) renamed to 'contentoffset' to be consistent with equivalent members in AudioTrack |
videooffsetvariable | StringVariable | No | — | (Deprecated) renamed to 'contentoffsetvariable' to be consistent with equivalent members in AudioTrack |
contentoffset | Integer | No | 0 | offset for the content of this to adjust the start frame |
contentoffsetvariable | StringVariable | No | — | additional offset for the content of this to adjust the start frame |
editoverlap | Integer | No | — | Number of frames overlapping in edit situations e.g. crossfade transitions. Adjusts contentoffset, usually should be negative e.g. -25 |
upscale | Boolean | No | false | Allow upscaling of images and videos to make them fit the container |
downscale | Boolean | No | true | Allow downscaling of images and videos to make them fit the container |
xalignment | TextAlignment | No | flushleft | [textsimple] Horizontal text alignment |
yalignment | TextPosition | No | bottom | [textsimple] Vertical text alignment |
http_extension_hint | String | No | — | [http, video] Hint for the extension of http images if no extension can be found in the URL |
loadpremulalpha | Boolean | No | true | Switch to skip alpha premultiplication on load (e.g. for masks) |
httpalwaysload | Boolean | No | false | [video, http] Specifies if http images are downloaded only once per movie rendering(false) or every time(true) (only enable when http content changes frequently) |
sceneview | SceneView | No | — | [scenebased] Sceneview for `scenebased` ImageProvider |
fontspacing_deprecated | Integer | No | 0 | (Deprecated) |
fontspacing | Number | No | 0 | [textsimple] Extra horizintal spacing between glyphs |
linespacing | Number | No | 0 | [textsimple] Extra line spacing between lines of text |
textborder_right | Integer | No | 0 | [textsimple] Right text border |
textborder_left | Integer | No | 0 | [textsimple] Left text border |
textborder_top | Integer | No | 0 | [textsimple] Top text border |
textborder_bottom | Integer | No | 0 | [textsimple] Bottom text border |
overflowresize | Boolean | No | true | (Deprecated) [textsimple] Allow text to be resized if it doesn't fit the container |
textsmallfontsizeavoidance | Boolean | No | false | [textsimple] Avoid rendering small fontsizes by rendering with higher font size and scaling down the image afterwards |
piechartdescription | PieChartDescription | No | — | [piechart] |
barchartdescription | BarChartDescription | No | — | [barchart] |
imagebarchartdescription | ImageBarChartDescription | No | — | [imagebarchart] |
linechartdescription | LineChartDescription | No | — | [linechart] |
bezierdescription | BezierDescription | No | — | [bezier] |
innerprovider | ImageProvider | No | — | Secondary ImageProvider for certain types (mask, augments) |
maskchannel | Integer | No | 0 | color channel for masking |
textoutlines | TextOutline[] | No | — | [textsimple] Array of TextOutline objects |
texttexture | ImageProvider | No | — | [textsimple] Image provider for texture inside of rendered text |
texttexturestyle | TextureStyle | No | texturestyle_line | [textsimple] Texture style |
textglyphcolormode | TextGlyphColorMode | No | textglyphcolormode_default | [textsimple] Color mode for text, used to switch between specified color/texture or font embedded |
texttypewritereffect | Function | No | — | [textsimple] Animate text like written on a typewriter |
texttypewriterfadestart | Function | No | — | [textsimple] typewriter animation start |
texttypewriterfadeend | Function | No | — | [textsimple] typewriter animation end |
fontspacing_function | Function | No | — | [textsimple] Animation function for character spacing |
linespacing_function | Function | No | — | [textsimple] Animation function for line spacing |
textstretchx | Number | No | 1.0 | [textsimple] Character stretching in x-axis |
textstretchx_function | Function | No | — | [textsimple] Animation function for character stretching in x-axis |
textstretchy | Number | No | 1.0 | [textsimple] Character stretching in y-axis |
textstretchy_function | Function | No | — | [textsimple] Animation function for character stretching in y-axis |
textoutlinesubpixellevel | Number | No | 1 | [textsimple] Fineness of text outlines |
textaugmentations | TextAugment[] | No | — | [textsimple] Array of TextAugment objects |
textoverflowbehaviour | TextOverflowBehaviour | No | textoverflowbehaviour_fs | [textsimple] What to do if text does not fit into given container |
textoverflowreferences | ImageProvider[] | No | — | [textsimple] References to look to for fontsize and scale, when using 'textoverflowbehaviour_ref' |
endbehaviour | EndBehaviour | No | repeatlast | Behaviour when more images are requested from this image provider than available |
ensure8bit | Boolean | No | false | Reduce image to 8 bit per channel |
textcontexts | TextContext[] | No | — | [textsimple] Array of TextContext |
usetextcontextmarkup | Boolean | No | false | [textsimple] Flag to indicate text contains markup referencing textcontexts |
strikethrough | TextDecoration | No | — | [textsimple] Styles for strike-through |
underline | TextDecoration | No | — | [textsimple] Styles for underline |
background | TextDecoration | No | — | [textsimple] Styles for background |
rotatevideobymetadata | Boolean | No | true | [video] Detect and apply device orientation/rortation meta data |
httpconfig | HTTPDownloadRequestInformation | No | — | [video, http, textsimple] Advanced configuration options for making http requests |
pathdescription | PathDescription | No | — | [path] Definition for an animated path of cubic bezier curves |
textnewlineheightmodifier | Number | No | 0.0 | [textsimple] Modifier for the height of new lines in percent |
textscript | String | No | — | [textsimple] Script of the text to be rendered. Default (unset) autodetects on a per character basis. Valid values are ISO 15924 abbreviations and long script names from the Unicode Character Database. E.g. the usual western alphabet characters would be 'Latn' or 'Latin', Arabic would be 'Arab' or 'Arabic' |
textwritingmode | TextWritingMode | No | textwritingmode_lrtb | [textsimple] Text writing mode option for horizontal/vertical text. Modes like rl* and bt* are expected to be handled through BiDi instead |
textrubies | TextRuby[] | No | — | [textsimple] List of specialized text contexts used for ruby support, ruby specific options are based on the TTML2 standard. Needs 'usetextcontextmarkup' to be true to have an effect. |
textcombines | TextCombine[] | No | — | [textsimple] List of specialized text contexts used for ruby support, ruby specific options are based on the TTML2 standard. Needs 'usetextcontextmarkup' to be true to have an effect. |
textcharpositionmode | TextCharacterPositionMode | No | charposition_charbased | [textsimple] Changes how character positions (i.a. used tor 'textposition'-TrackData) are computed |
maxcontentframes | Integer | No | — | set a limit to the number of frames determined dynamically from content |
gradientdescription | GradientDescription | No | — | [gradient] Description for the gradient to render |
gradientinterpolationmode | Color.ColorInterpolationMode | No | color_interpolation_rgb | [gradient] Defines the interpolation color space between gradient color stops |
gradientdescriptiontype | GradientDescriptionType | No | gradientdesctype_embedded | [gradient] Where to get the gradient description |
gradientdescriptionvariable | StringVariable | No | — | [gradient] Variable that can be used to specify the gradient as a string (in css) |
imagedata | StringVariable | No | — | [string] Variable that holds image data either as RFC2397 data URL or SVG XML document |
textanimators | TextAnimator[] | No | — | |
textroi | ROI | No | — | [textsimple] change the region where the text is constrained to for purposes of overflowresize considerations from the default (size of image - borders) |
name | String[] | No | — |
ImageProvider.TextOutline
Text outlines are extra borders drawn aroun/along the glyphs of text
Type
| Value | Description |
|---|---|
simple | |
rounded |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | simple | Text outline type |
size | Number | No | 1 | Thickness of outline |
color | Color | No | — | Color to draw outline with |
texture | ImageProvider | No | — | Image to use for texture filling |
texturestyle | TextureStyle | No | texturestyle_line | Fill style for image texture |
ImageProvider.TextAugment
Text augments are extra (usually small) images rendered at, above, above glyphs of text strings.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
content | ImageProvider | No | — | Image to render |
anchor_character | Number | No | 0 | Start position given in percent of string length |
x | Number | No | 0 | Horizontal offset |
y | Number | No | 0 | Vertical offset |
size | Number | No | 1.0 | Scaling factor for image |
ImageProvider.TextContext
Definition of a text context overriding one or more of the settings for the whole text or contexts up in the context tree.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name | String | No | — | identifier for the text context, should contain alphanumeric characters only |
font | FileLocation | No | — | Font file, overrides source |
fonthttpconfig | HTTPDownloadRequestInformation | No | — | Advanced configuration options for making http requests to retrieve the font |
fontsize | Number | No | — | Font size |
fontsize_function | Function | No | — | Animation function for font size |
color | Color | No | — | |
texture | ImageProvider | No | — | |
texturestyle | TextureStyle | No | texturestyle_line | |
glyphcolormode | TextGlyphColorMode | No | textglyphcolormode_default | Color mode for text, used to switch between specified color/texture or font embedded |
fontspacing | Number | No | — | |
stretchx | Number | No | 1.0 | Character streching in x-axis |
stretchx_function | Function | No | — | Animation function for character streching in x-axis |
stretchy | Number | No | 1.0 | Character streching in y-axis |
stretchy_function | Function | No | — | Animation function for character streching in y-axis |
strikethrough | TextDecoration | No | — | |
underline | TextDecoration | No | — | |
background | TextDecoration | No | — | |
script | String | No | — | |
textanimators | TextAnimator[] | No | — |
ImageProvider.TextDecoration
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
color | Color | No | — | |
texture | ImageProvider | No | — | |
texturestyle | TextureStyle | No | — | |
paddingleft | Number | No | — | |
paddingright | Number | No | — | |
paddingtop | Number | No | — | |
paddingbottom | Number | No | — |
ImageProvider.TextAnimator
AnchorPointType
| Value | Description |
|---|---|
ANCHORPOINT_CHARS | |
ANCHORPOINT_WORDS | |
ANCHORPOINT_LINES | |
ANCHORPOINT_ALL |
PropertyType
| Value | Description |
|---|---|
PROPERTY_SIMPLE | |
PROPERTY_MULTIVALUE | |
PROPERTY_3DVALUE |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
selectors | Selector[] | No | — | |
anchorpointtype | AnchorPointType | No | ANCHORPOINT_CHARS | on what type of grouping the anchor point is based on |
anchorpointalignment | Point | No | — | offset to the anchor point relative to the anchor point grouping (1.0 is 100% of the size of the group) |
propertytype | PropertyType | No | PROPERTY_SIMPLE | Mode of animating properties (rotate, scale, translate, etc.) PROPERTY_MULTIVALUE can have differing values over time (anchortrackdata, etc.) |
anchor | Point | No | — | Properties used with propertytype PROPERTY_SIMPLE |
scale | Point | No | — | |
rotate | Number | No | — | |
translate | Point | No | — | |
skew | Point | No | — | |
opacity | Number | No | 1.0 | |
anchortrackdata | TrackData | No | — | Properties used with propertytype PROPERTY_MULTIVALUE |
scaletrackdata | TrackData | No | — | |
rotatetrackdata | TrackData | No | — | |
translatetrackdata | TrackData | No | — | |
skewtrackdata | TrackData | No | — | |
opacityfunction | Function | No | — | |
anchor3d | Pos3d | No | — | |
scale3d | Pos3d | No | — | |
rotate3d | Pos3d | No | — | |
translate3d | Pos3d | No | — | |
skew3d | Pos3d | No | — | |
focus3d | Number | No | — | |
color | Color | No | — | Color to which the color of the text is interpolated to |
colorinterpolation | Color.ColorInterpolationMode | No | color_interpolation_rgb |
ImageProvider.TextRuby
Definition of special ruby context. Used to define the three components of a ruby definition ‘container’, ‘base’, ‘text’ and ‘reserve’ markup for lines that should reserve space for rubies
Type
| Value | Description |
|---|---|
type_container | Container type, needs 0 or 1 base and 0..n text components and nothing else inside |
type_base | Base type, needs to be the first component in its container |
type_text | Text type |
type_reserve | Reserve type |
Align
| Value | Description |
|---|---|
align_start | Align at the start of the ruby container (left justified/top justified) |
align_center | Align at the center of the ruby container |
align_end | Align at the end of the ruby container (right justified/bottom justified) |
Position
| Value | Description |
|---|---|
position_before | Position before the base |
position_after | Position after the base |
position_outside | Position before the first line and after every other line |
Reserve
| Value | Description |
|---|---|
reserve_both | Reserve space before and after the line(s) |
reserve_before | Reserve space before the line(s) |
reserve_after | Reserve space after the line(s) |
reserve_outside | For multiple lines reserve space before the first line, and after every other line, for one line reserve space before and after the line |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ruby | Type | Yes | — | Type of ruby |
name | String | Yes | — | Name of the special ruby context |
rubyalign | Align | No | align_center | [type_container] Alignment mode of the ruby base and ruby text (whichever is longer) |
rubyposition | Position | No | position_outside | [type_text] Position of the ruby text |
rubyreserve | Reserve | No | reserve_outside | [type_reserve] Position of the ruby reserved space |
relativesize | Number | No | 0.5 | [type_text, type_reserve] Size modifier of the ruby text (or potential ruby text for reserve) in relation to base |
context | TextContext | No | — | Additional context definition for the ruby component |
ImageProvider.TextCombine
Definition of a special text combine context. Used to group characters that should be rendered horizontally together in vertical text runs. Has no special effect in horizontal text.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name | String | Yes | — | Name of the special ruby context |
fontspacing | Number | No | — | Outer fontspacing |
context | TextContext | No | — | Additional context definition for the text combine component |
ImageProvider.GradientDescription
Type
| Value | Description |
|---|---|
gradient_linear | A linear gradient |
gradient_radial | A radial gradient |
gradient_conic | A conic gradient |
Shape
| Value | Description |
|---|---|
shape_ellipse | |
shape_circle |
RadialSize
| Value | Description |
|---|---|
radialsize_farthest_corner | Circle/ellipse goes through the farthest corner from the middle |
radialsize_farthest_side | Circle/ellipse touches the farthest side(s) from the middle |
radialsize_closest_corner | Circle/ellipse goes through the closest corner from the middle |
radialsize_closest_side | Circle/ellipse touches the closest side(s) from the middle |
radialsize_absolute | Circle/ellipse sizes is specified by radiusx (and radiusy) |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | gradient_linear | The type of gradient |
repeating | Boolean | No | false | Specifies if the gradient should repeat |
angle | Number | No | 0.0 | [gradient_linear, gradient_conic] Angle in degrees, for the linear gradient it specifies rotation of the gradient, for the conic gradient it specifies the start of the gradient |
shape | Shape | No | shape_ellipse | [gradient_radial] shape of the radial gradient |
radialsize | RadialSize | No | radialsize_farthest_corner | [gradient_radial] specifies how to determine the size of the radial gradient |
radiusx | Number | No | — | [gradient_radial] specifies an absolute radius when radialsize is radialsize_absolute |
radiusy | Number | No | — | [gradient_radial] specifie a second absolute radius for ellipse when radialsize is radialsize_absolute |
middle | Point | No | — | [gradient_radial, gradient_conic] the middle point of the gradient |
colorstops | ColorStop[] | No | — | The color stops of the gradient, need at least one color stop |
ImageProvider.PathDescription
PathType
| Value | Description |
|---|---|
type_straight | |
type_bezier |
DrawMethod
| Value | Description |
|---|---|
draw_fill | |
draw_stroke | |
draw_stroke_fill |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pathtype | PathType | No | type_straight | |
points | TrackData | No | — | |
color | Color | No | — | |
fillcolor | Color | No | — | |
linewidth | Number | No | 1.0 | |
capstyle | LineCapStyle | No | cap_butt | |
closepath | Boolean | No | true | |
drawmethod | DrawMethod | No | draw_fill |
Transformations
Transformation
A Transformation takes an input image and return a transformed version.
Type
There are three distinctions as to the size of the returned image
| Value | Description |
|---|---|
blur | Gaussian blur |
motionblur | Motion blur |
trackedmotionblur | Motion blur, with parameters derived from average motion of tracking data |
inpaint | inpainting of points |
mask | masking by alpha mask |
mls | Moving Least Squares image morphing (deprecated, use morph with morph_mls morphtype instead |
morph | morphing image through MLS or TPS |
linearzoomin | viewpoint transformation zoom in |
linearzoomout | viewpoint transformation zoom out |
intensity | change saturation of the image |
rotate | rotate the image |
invert | invert the image |
premultiplyalpha | make the image premultiplied/unpremultiplied |
minimax | Minimax effect from After Effects, uses image morphology operations (dilate/erode), sets pixels to the minimum/maximum value of their neighbourhood |
circularblur | Circular blur |
radialblur | Radial blur |
scaling | scaling of input image |
scalingletter | scaling of input image preserving aspect ratio |
scalingaspect | scaling to a specified width or height with aspect ratio |
scalingcrop | scaling to a specified width or height with aspect ratio |
crop | cropping of the image with x/y offset and specified size |
mipmap | scale down to an(implicitly) specified size (mipmap) for further use in ContextSize transformations/to avoid interpolation artifacts |
facedetect | detect a face and crop the input around it |
quadtracking (alias: warp) | warping to quad track data |
warpback | warping from quad track data |
warpquads | warping from quad track data to quad track data |
gridtracking (alias: gridwarp) | warping to grid track data |
texturemapping32f | warping to image map |
animate | animate the input |
affine | affine transformation (2D) similar to animate |
affinemotionblur | affine transformation (2D) similar to animate |
pointpaste | translate to a tracking point |
custom | custom |
croprotatewarp | Crop, rotate & warp in one step. Data supplied dynamically |
flip | Flip image around given FlipAxis |
colortwist | Perform 3D color transformation |
colorboost | Boost saturation of colors |
nashville | Instagramm like Nashville filter |
lordkelvin | Instagramm like Lord Kelvin filter |
splittoning | Colorize specific color range, grayscale the rest |
tiltshift | Depth of field simulation |
sincity | Instagramm like Sin City filter |
glow | Glow Effect |
vignette | Vignette (darken edges with circular center) |
comic | Cartoonize image (optionally perform Roy Lichtenstein color dithering) |
textshadow | Drop shadow |
cubelut | 3-D color lookup table |
distortionmap | Distort image based on distortionmap * |
ComicColorReductMethod
Method used for color reduction, after bilateral filtering.
| Value | Description |
|---|---|
fixed | Color reduction suitable for video. Reduction is very simple: Colors will be matched to a fixed palette, independent from image content. This avoids fluctuation and flickering effects over time. |
adaptive | Correct adaptive color reduction. Based on image content, the colors for best perceptional image representation will be determined. Should not be used with video content |
rlichtenstein | Special dithering style: use each color in full and half half saturation. Areas with half saturation will be dithered with dots in “Roy Lichtenstein” style. |
FlipAxis
Axis for flip transformation
| Value | Description |
|---|---|
flipx | |
flipy |
Morph
Image morphing mode
| Value | Description |
|---|---|
morph_mls | |
morph_tps | |
morph_mls_legacy |
RotationMode
| Value | Description |
|---|---|
clockwise90 | |
counterclockwise90 | |
autolandscapecw | |
autolandscapeccw | |
autoportraitcw | |
autoportraitccw |
MipMapType
Mip mapping (Resolution/Size dependant scaling)
| Value | Description |
|---|---|
mipmap_trackdatabased | |
mipmap_maskbased_alpha | |
mipmap_maskbased_grayscale |
InvertBehaviour
Invert color and/or alpha channel of an image
| Value | Description |
|---|---|
invertbehaviour_color_channels | |
invertbehaviour_alpha | |
invertbehaviour_color_channels_and_alpha |
MiniMaxMode
| Value | Description |
|---|---|
minimax_minimum | |
minimax_maximum | |
minimax_minimumthenmaximum | |
minimax_maximumthenminimum |
AffinePositionMode
| Value | Description |
|---|---|
affineposition_topleft | |
affineposition_topright | |
affineposition_bottomleft | |
affineposition_bottomright | |
affineposition_center | |
affineposition_centertop | |
affineposition_centerbottom | |
affineposition_centerleft | |
affineposition_centerright |
ColorSpace
| Value | Description |
|---|---|
COLORSPACE_HSV | |
COLORSPACE_HLS |
ScalingAlignment
| Value | Description |
|---|---|
scalingalign_left | |
scalingalign_center | |
scalingalign_right |
ScalingPosition
| Value | Description |
|---|---|
scalingpos_top | |
scalingpos_middle | |
scalingpos_bottom |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | Yes | — | Type of this Transformation |
trackdata | TrackData | No | — | [trackedmotionblur, quadtracking, quadtrackingback, gridtracking, croprotatewarp, linearzoomin, linearzoomout, inpaint] Motion data |
sourcetrackdata | TrackData | No | — | [quadtoquadwarp] Motion data |
image | ImageProvider | No | — | [texturemapping32f] image sequence to use as UV map. [mask] mask to use on image. [distortionmap] distortion map to use on image |
blurlength | Number | No | 1.0 | [blur] kernelsize of the Gaussian blur in Pixels. [motionblur] length of the motion. [trackedmotionblur] factor for the determined motion |
blurfactor | Number | No | — | [blur] sigma of the Gaussian blur. [motionblur] direction of the motion in degrees |
blurlength_inc | Number | No | — | [blur, motionblur] increment by frame for blurlength and blurfactor |
blurfactor_inc | Number | No | — | [blur, motionblur] increment by frame for blurlength and blurfactor |
blurfunction | Function | No | — | [blur, motionblur] Animation function for gaussian blur |
zoomscale | Boolean | No | — | [quadtracking] Scale the input image to an appropriate size before warping to avoid interpolation artifacts. Especially useful when large zooming is taking place. Used in quadtracking, corresponds to sharpness |
smoothedge | Integer | No | 0 | [quadtracking] Workaround to image warping bug. Slower but avoids aliasing artifacts on warped images |
scale | Number[] | No | — | [mls] scale factor for points. [scaling, scalingletter] Size of the scaled output. [trackedmotionblur, quadtracking, gridtracking, linearzoomin, linearzoomout, inpaint] Scale factor for the tracking data |
scalerelative | Boolean | No | false | [scaling, scalingletter] If this is true scaling and scalingLetterbox Transformations are done with the scale factor relative to the imageSize |
aspectratio | Number | No | — | [scaleaspect] Aspect ratio |
fixedsidesize | Integer | No | — | [scaleaspect] the length in pixels of the side specified in *specifiedside* |
specifiedside | String | No | — | [scaleaspect] w | h |
color | Color | No | — | [scalingletter] background color of image. [sincity] Reference color. This color which will be preserved - only Hue component is relevant. [vignette] Color the border will be faded into. |
numpoints | Integer | No | — | [mls] Number of points in *sourcepoints* and *destinationpoints* |
sourcepoints | PointsVariable | No | — | [mls] Source coordinates |
destinationpoints | PointsVariable | No | — | [mls] Destination coordinates |
numframes | Integer | No | — | [quadtracking] number of frames to apply transformation |
offset | Integer | No | — | [quadtracking] offset in frames for transformation |
posadjust | PosAdjust | No | — | [facedetect] Adjustion for detected face area cutout |
erasesize | Integer[] | No | — | [inpaint] Radius to clean |
searchradius | Number | No | 4 | [inpaint] Radius to search |
maskchannel | Integer | No | 0 | [mask] which channel of image contains the alpha mask |
invertmask | Boolean | No | false | [mask] invert the mask before use |
saturation | Number | No | — | [intensity] Desaturate image. Values 0..1 |
colorintensity | Number | No | 1.0 | [vignette, colorboost, tiltshift] Factor to boost color. [tiltshift] Factor to boost color. 1.7 should be a good default. [splittone, glow] Factor to apply effect 0..1 |
sigma | Number | No | 1.0 | [vignette, splittone] Number of standard deviations for blur. 4-32 is useful range.. [tiltshift] Max blur sigma for gaussian blur. 8-32 should be appropriate.. [glow] Number of standard deviations for blur. 4-32 should be useful.. [circularblur, radialblur] Number of standard deviations for blur. |
dark | Color | No | — | [splittone] Color for dark areas |
light | Color | No | — | [splittone] Color for light areas |
tolerance | Number | No | 0.2 | [sincity] Tolerance for color matching. Range 8-32 should be useful |
monochromize | Boolean | No | false | [splittone] when set to true, image will me converted to monochrome first to remove original color toning. false should be a good default |
focussize | Number | No | 0.2 | [tiltshift] size of focus area. 0.1 should be a good default |
focusheight | Number | No | 0.5 | [tiltshift] position of focus center - 0.0 means top of image, 1.0 means bottom. 0.7 should be a good default |
spotfocus | Boolean | No | false | [tiltshift] If true: use an elliptical ('spot') focus area. If false: horizontally invariant focus. [vignette] True means emphasized area is circular, false means area is elliptical with the same AR as image |
threshold | Number | No | 0.08 | [splittone] brightness value where toning is switched from dark to light 128 is the most sensible default value |
transitionwidth | Number | No | 0.3 | [splittone] number of brightness levels used for dark toning - light toning transition. 8-64 should be reasonable |
brightness | Number | No | 1.0 | [colorboost] Brightness enhance |
aperture | Number | No | 0.7 | [vignette] Size of preserved center area, 1.0 means full image size. Nice default: 0.7 |
blurborder | Boolean | No | false | [vignette] Blur faded border areas |
bilatfilter_iterations | Integer | No | 4 | [comic] Number of iterations for bilateral filtering. Bilateral filtering is the key processing step removing fine details to obtain plain, unicolor areas typical for comic images. 4 iterations produce good results but need a lot of cpu time. |
edge_detail_scale | Number | No | 1.0 | [comic] Scale factor for contour layer - use bigger values to drop small details and smaller for fine contours |
colorblur | Number | No | 0.8 | [comic] Sigma for color layer blur. This blurring step is performed after color reduction and smoothes transitions between unicolored areas - should normally be disabled with lichtenstein dithering |
bilatfilter_tonalsigma | Number | No | 8.0 | [comic] Tonal sigma for bilat. filtering |
bilatfilter_spatialsigma | Number | No | 3.0 | [comic] Spatial sigma for bilat. filtering |
preproc_sigma | Number | No | -1.0 | [comic] Preprocessing Blur Sigma. Useful for reduction of fine-grained image structures or noise which may distract the edge detection process most images will look fine with this option being disabled. -1 disables option. |
colorreduct_levels | Integer | No | 8 | [comic] Number colors for color reduction. Depending on color_reduct_method, this parameter is used differently: **ComicColorReductMethod.fixed** colorreduct_levels sets the number of brightness levels for each color channel. Raise this to the power of 3 to get the number of possible colors. (The actual number of resulting colors will be smaller, except for extremely colorful images) Points to be considered: Do not use too high values, real number of colors is the third power of this value Do not use too small values, reduction to fixed colors may look ugly otherwise A good default for color_reduct_levels would be 8, resulting in 8x8x8=512 possible colors. **ComicColorReductMethod.adaptive** colorreduct_levels sets the actual number of colors used for reduction. Just think about how many colors should be used for this image and set this value. A good default for color_reduct_levels would be 18 **ComicColorReductMethod.rlichtenstein** colorreduct_levels sets the number of base colors used for reduction. White is always used as additional color. Each base color may occur in plain and in dithered style, as colored dots on white background. Points to be considered: After converting the image to HSV space, the 'value' (V) component is discarded. Therefore a fewer number of colors is needed nice reduction results. A good default for color_reduct_levels would be 5 |
colorreduct_minsaturation | Integer | No | 16 | [comic] color quantization: minimum saturation which will not be quantized to grey |
colorreduct_method | ComicColorReductMethod | No | fixed | [comic] Color reeduction method to use |
lstein_dither_ratio | Number | No | 0.5 | [comic] Ratio of area being dithered with half saturation |
lstein_dot_radius | Number | No | 1.6 | [comic] Radius of dots used in dithering |
lstein_dot_distance | Integer | No | 6 | [comic] Distance between dots used in dithering |
lstein_dot_skew | Integer | No | 1 | [comic] Skew of dots used in dithering |
interpoltilesize | Integer | No | 8 | [comic] Tile size during interpolation. Avoid too small values. |
inner_size | Number | No | 3.0 | [textshadow] |
outer_size | Number | No | 0.0 | [textshadow] |
inner_color | Color | No | — | [textshadow] |
outer_color | Color | No | — | [textshadow] |
inner_offsetx | Integer | No | 1 | [textshadow] |
inner_offsety | Integer | No | 1 | [textshadow] |
outer_offsetx | Integer | No | 1 | [textshadow] |
outer_offsety | Integer | No | 1 | [textshadow] |
inner_intensity | Number | No | 0.75 | [textshadow] |
outer_intensity | Number | No | 0.27 | [textshadow] |
rotatevariable | StringVariable | No | — | [croprotatewarp] Rotation angle in degrees. Rotates the crop rectangle specified in *cropvariable*. Rotation center defaults to center of crop rectangle, but can be adjusted via *rotatecenterxoffset* and *rotatecenteryoffset*. |
cropvariable | StringVariable | No | — | [croprotatewarp] List of 4 comma separated values, specifying the top left and bottom right corners of a crop rectangle, e.g. 20, 20, 220, 320. Can be absolute or relative coordinates, depending on *relativecroppositions*. |
orientationvariable | StringVariable | No | — | [croprotatewarp] Orientation value, one of "0", "1", "2", "3". Specifies the number of 90 degree turns the cropped source image is turned to correct missing orientation metadata. |
rotatecenterxoffset | Number | No | 0 | [croprotatewarp] X offset for rotation center. Relative to size of crop rectangle. Default (0) is center |
rotatecenteryoffset | Number | No | 0 | [croprotatewarp] Y offset for rotation center. Relative to size of crop rectangle. Default (0) is center. |
relativecroppositions | Boolean | No | false | [croprotatewarp] Use crop positions in coordinates relative to source image size. |
width | Integer | No | — | [crop] Width of the cropped image |
height | Integer | No | — | [crop] Height of the cropped image |
x | Number | No | — | [crop] X coordinate of the top left corner |
y | Number | No | — | [crop] Y coordinate of the top left corner |
centerx | Boolean | No | — | [crop] Crop from horizontal center |
centery | Boolean | No | — | [crop] Crop from vertical center |
flipaxis | FlipAxis | No | — | [flip] Flip around this axis |
colormatrix | StringVariable | No | — | [colortwist] |
morphtype | Morph | No | morph_mls | [mls, morph] Image morphing mode |
morphsourcepoints | TrackData | No | — | [mls, morph] Source positions |
morphdestinationpoints | TrackData | No | — | [mls, morph] Destination positions |
morphtilesize | Integer | No | 10 | [mls, morph] Processing size |
paramfile | FileLocation | No | — | [cubelut] File in IRIDAS .cube format or Photoshop .acv curve format |
rotationmode | RotationMode | No | — | [rotate] Use video metadata to detect device rotation and re-orint image correctly |
scaledata | TrackData | No | — | [affine, affinemotionblur] Scaling (Size) motion data for affine transformations |
rotatedata | TrackData | No | — | [affine, affinemotionblur] Rotation motion data for affine transformations |
translatedata | TrackData | No | — | [affine, affinemotionblur] Position motion data for affine transformations |
anchordata | TrackData | No | — | [affine, affinemotionblur] Anchor offset motion data for affine transformations |
mipmap_type | MipMapType | No | mipmap_trackdatabased | [mipmap] |
mipmap_initialsize | Integer | No | 5 | [mipmap] |
mipmap_basefactor | Number | No | 2 | [mipmap] |
enablevariable | StringVariable | No | — | Enable this transformation depending on the value of this variable |
invertenable | Boolean | No | false | Invert logic for *enablevariable* |
invertbehaviour | InvertBehaviour | No | invertbehaviour_color_channels | [invert] Image channels to invert |
premultipliedalphastate | Boolean | No | true | [premultiplyalpha] Premultiply image with alpha |
minimaxmode | MiniMaxMode | No | minimax_minimum | [minimax] |
minimaxradius | Integer | No | 1 | [minimax] The radius determining the kernel size of the minimax morphology operation |
affinepositionmode | AffinePositionMode | No | affineposition_topleft | [affine] Determines the positioning of the image in the coordinate system (which part lies at (0, 0)) |
intensitycolorspace | ColorSpace | No | COLORSPACE_HSV | [intensity] Determines the colorspace for the saturation adjustments, defaults to HSV for legacy reasons, HLS should probably be preferred |
saturationfunction | Function | No | — | [intensity] Function to do a multiplicative animation of the "saturation" parameter |
distortionxfactor | Number | No | 1.0 | [distortionmap] distortion factor in x-axis * |
distortionyfactor | Number | No | 1.0 | [distortionmap] distortion factor in y-axis * |
distortionxchannel | Integer | No | 0 | [distortionmap] channel of map to use for x-axis * |
distortionychannel | Integer | No | 1 | [distortionmap] channel of map to use for y-axis * |
scalingalign | ScalingAlignment | No | scalingalign_center | [scalingaspect, scalingcrop] X-axis alignemnt for scaled image, when cropped or letterboxed, default is centered * |
scalingposition | ScalingPosition | No | scalingpos_middle | [scalingaspect, scalingcrop] Y-axis position for scaled image, when cropped or letterboxed, default is centered in middle * |
name | String[] | No | — |
Audio
Audio
Container for AudioTracks. All tracks are mixed (composed) according to their Mix and volume settings
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
audiotracks | AudioTrack[] | No | — | Array of AudioTracks to compose |
AudioTrack
The AudioTrack object encapsulate an audio source. Like VisualTracks, audio tracks can be composed (mixed) on top of each other according to their volume and clipping functions. Note: When operating on sections of audio objects (numframes, offset), a frame is defined by the number of audio samples per frame. To work width audio frames taht are roughly equal to the visual frames set the audioframesize in the AudioParams to samplerate/(frames per second) e.g. 44100 / 25 = 1764.
LevelMode
Mix Mode
| Value | Description |
|---|---|
legacy | hard-clip audio track when applying gain, mixing tracks will never overdrive, intermodulation artifacts may occur |
legacy_softgain | soft-clip audio track when applying gain, mixing tracks will never overdrive, intermodulation artifacts may occur |
hardclip | generally hard clip sample amplitude at overflows |
softclip | soft clip sample amplitude at overflows - less audible distortion |
softclip4x | soft clip with 4x oversampling (avoids aliasing, more cpu-intensive) |
Type
Source type
| Value | Description |
|---|---|
preencoded | audio source is preencoded aac |
mix | audio source is wav, mixed with underlying AudioTracks, deprecated use video_mix |
replace | audio source is wav, replacing underlying AudioTracks, deprecated use video_replace |
decoder | audio source is a video, mixed with underlying AudioTracks , deprecated use video_mix |
decoder_replace | audio source is a video, replacing underlying AudioTracks, deprecated use videoreplace |
video_mix | audio source is a video, but the audio is cached in a .wav-file, mixed with underlying AudioTracks |
video_replace | audio source is a video, but the audio is cached in a .wav-file, replacing underlying AudioTracks |
scenebased | based on a sceneview |
empty | create silent track |
changevolume | change volume of tracks rendered up to this point |
live | Live (Remote) audio source |
live_replace | Live (Remote) audio source, no mixing |
synthetic | dynamically synthesized audio track, no mixing |
synthetic_mix | dynamically synthesized audio track |
backtoback | combining track that plays inner audiotracks backtoback even on variable lengths |
media_replace | |
provided_mix | Audio from ‘audioprovider’ is mixed with underlying audio tracks |
provided_replace | Audio from ‘audioprovider’ replaces underlying audio tracks |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | preencoded | Type of this AudioTrack |
gain | Number | No | 0 | Globally applied gain, specified in dB |
volume | Number | No | 1.0 | Volume for audio mixing used in mix |
volumefunction | Function | No | — | Volume function for fade in and fade out |
defaultsource | FileLocation | No | — | The default location of the audio file, used to give a fallback for multi language audio |
source | FileLocation | No | — | The location for the audio source, either a sound file, or a video( .mov, .mp4, .avi) |
offset=2[default | Integer | No | — | Offset from the beginning of the scene/movie, audio starts playing after offset frames |
numframes | Integer | No | — | Optional number of frames (use when fewer frames needed than source provides) |
contentoffset | Integer | No | — | Audio content offset, when audio starts playing it begins with the equivalent of the contentoffset of the AudioSource |
contentoffsetvariable | StringVariable | No | — | Variable for contentoffset |
offsetvariable | StringVariable | No | — | Variable for dynamic offset of the AudioTrack |
editoverlap | Integer | No | — | Number of frames overlapping in edit situations e.g. crossfade transitions. Adjusts contentoffset/numframes, usually should be negative e.g. -25 |
optional_audio | Boolean | No | false | Do not throw error if source provides no audio |
sv | SceneView | No | — | [scenebased] SceneView for scene-based audio |
name | String[] | No | — | Names for this a´AudioTrack |
levelmode | LevelMode | No | legacy | Mix mode |
inneraudiotracks | AudioTrack[] | No | — | (Deprecated) |
inneraudio | Audio | No | — | [backtoback] List of tracks |
ignorelength | Boolean | No | false | ignore any provided length information. Instead use computed length |
enablevariable | StringVariable | No | — | Variable to enabled or disable this track dynmically |
invertenable | Boolean | No | false | Invert logic for enabledvariable |
httpconfig | HTTPDownloadRequestInformation | No | — | Advanced configuration options for making http requests |
endbehaviour | EndBehaviour | No | emptyframe | [video_mix, video_replace, mix, replace] Endbehaviour of audio source |
multistreamindices | Integer[] | No | — | [video_mix, video_replace] Enables audio decoding using multiple streams of the source video/audio file (to support apple itunes spec) or allows to specify one used audio stream instead of defaulting to the first one |
mixvolume | Boolean | No | false | [scenebased, backtoback] mix the audio returned from the sceneview/inneraudio according to volume/volumefunction and apply gain instead of only passing it through. Note: This changes the order audio is mixed. |
maxcontentframes | Integer | No | — | set a limit to the number of frames determined dynamically from content |
audioprovider | AudioProvider | No | — |
AudioProvider
Type
| Value | Description |
|---|---|
media |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | media | |
source | FileLocation | No | — | [media] The location for the audio source, either a sound file, or a video( .mov, .mp4, .avi) |
defaultsource | FileLocation | No | — | [media] A default location for the media file used if source can not be loaded, e.g. can be fallback for multi language audio |
contentoffset | Integer | No | — | Audio content offset, when audio starts playing it begins with the equivalent of the contentoffset of the AudioSource |
contentoffsetvariable | StringVariable | No | — | Variable for contentoffset |
editoverlap | Integer | No | — | Number of frames overlapping in edit situations e.g. crossfade transitions. Adjusts contentoffset/numframes, usually should be negative e.g. -25 |
optional_audio | Boolean | No | false | Do not throw error if source provides no audio |
httpconfig | HTTPDownloadRequestInformation | No | — | Advanced configuration options for making http requests |
maxcontentframes | Integer | No | — | set a limit to the number of frames determined dynamically from content |
endbehaviour | EndBehaviour | No | emptyframe | Endbehaviour of audio provider |
Variables & Data
StringVariable
Variable messages can fetch data like user names or coordinates dynamically at rendering time At the moment there are string and PointVector variables. StringVariables are used in TextRendering and in FileLocations. PointVectorVariables provide user supplied morph points for the MLS transformation. As soon as a dynamic variable (not const, add, condition or boolean) is used somewhere in a Scene the whole Scene becomes dynamic
Type
| Value | Description |
|---|---|
constant | constant variable, use value |
file | fetch value from file, discontinued |
http | fetch value over http |
map | fetch value from map of GET-parameters |
random | randomly select a value from randomvalues |
add | meta variable, that adds the values of two variables together |
target | iv tool support for selector/target based filename retrieval |
datasource | variable getting values from an iv tool datasource |
fileexists | tests if file exists |
structureddata | uses path-syntax to retrieve data from structured input (only JSON and JSONPath implemented) |
condition | evaluates condition using variable1 comparing with operator to specified values, intended for enablevars |
logical | was boolean |
counter | changes value from counterstart to counterend based on function, expects parsable input |
urlescape | escapes value of inner variable for use in URLS |
transform | transform string value of inner variable |
format | template variable, taking template substitution values directly from a context build from the map parameters |
datetime | time providing variable, that gives either current date/time or user specified date/time as floating point number (e.g. for use in counter) |
StructuredDataType
| Value | Description |
|---|---|
structured_json |
ConditionOperator
| Value | Description |
|---|---|
IN | |
NOT_IN | |
BEGINS_WITH | |
ENDS_WITH |
BooleanOperator
| Value | Description |
|---|---|
AND | |
OR | |
NAND | |
NOR | |
NOT |
CounterValueType
| Value | Description |
|---|---|
CVT_START_END | |
CVT_OFFSET_TO_START | |
CVT_OFFSET_TO_END |
CounterFormat
Counter value interpretation mode
| Value | Description |
|---|---|
FORMAT_INT | |
FORMAT_FLOAT | |
FORMAT_TIME |
RoundingMode
Rounding mode for counter type StringVariables
| Value | Description |
|---|---|
RND_ROUND | |
RND_CEIL | |
RND_FLOOR |
TimeUnit
Time units for Counter type StringVariables
| Value | Description |
|---|---|
TU_MILLISECOND | |
TU_SECOND | |
TU_MINUTE | |
TU_HOUR | |
TU_DAY |
TransformMode
String transformations for StringVariable
| Value | Description |
|---|---|
TRANS_LOWER | |
TRANS_UPPER | |
TRANS_TITLE | |
TRANS_ARABIC | |
TRANS_WORDWRAP | |
TRANS_SUBSTR |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | Yes | — | Type of this variable |
source | FileLocation | No | — | [file, http, map] Location/key where the value can be retrieved |
key | String | No | — | [map, datasource] (Query-) Parameter name |
randomvalues | String[] | No | — | [random] values from which one is randomly picked |
value | String | No | — | [constant, template] Value |
variable1 | StringVariable | No | — | [add] Variable for first parameter |
variable2 | StringVariable | No | — | [add] Variable for second parameter |
defaultvalue | String | No | — | [map] Default value |
column | String | No | — | [datasource] Column name |
defaultrow | String | No | — | [datasource] Default row |
structureddatatype | StructuredDataType | No | structured_json | [structureddata] Type |
structureddatainput | StringVariable | No | — | [structureddata] Input data |
path | StringVariable | No | — | [structureddata] Data source |
integerformat | StringVariable | No | — | [structureddata] Variable for dynamic formatting of integers |
floatingpointformat | StringVariable | No | — | [structureddata] Variable for dynamic formatting of floating point values |
conditionoperator | ConditionOperator | No | IN | [condition] Operator to use when evaluation condition expressions |
conditionvalues | String[] | No | — | [condition] -´Array of values to test for `IN`, `BEGINS_WITH` and `ENDS_WITH` operations |
conditiontruevalue | String | No | t | [condition] Value to return for trueness |
conditionfalsevalue | String | No | — | [condition] Value to return for falseness |
booleanoperator | BooleanOperator | No | AND | [logical] Operator to use when avaluating logical expressions |
counterstart | StringVariable | No | — | [counter] Start value for counter |
counterend | StringVariable | No | — | [counter] End value for counter |
countervaluetype | CounterValueType | No | CVT_START_END | [counter] - |
counterfunction | Function | No | — | [counter] Animation function to advance the counter with each frame. |
counterformattype | CounterFormat | No | FORMAT_INT | [counter] How to interpret counter value before formatting the output string |
counterformat | StringVariable | No | — | [counter] A variable to supply the format to *formatstring* |
roundingmode | RoundingMode | No | RND_FLOOR | [counter] Round fractional counter values up or down |
countertimeunit | TimeUnit | No | TU_SECOND | [counter] Counter value is interpreted as this time unit |
formatstring | String | No | — | [counter] C printf like format string or a time format string ( %D for days, %H for hours, %M for minutes, %S for seconds, %L for milliseconds; execept for days, use lower case characters instead to get a value bounded to the next greater unit (e.g "%H:%02m:%02s" for a clock)). [format] A variable substitution string (e.g. "Hello $(name), how are you?") |
ignoreformaterrors | Boolean | No | false | [counter, format] Do not throw errors if value cannot be converted with given format string |
urlescapeall | Boolean | No | false | [format] Urlescape all variable values before substitution |
formatadditionalsubstitutions | KVEntry[] | No | — | [foramt] Addditional variable substitutions, that get added to the substitution context. If there already was an entry with the same key in the substitution context the old value is shadowed by the newly added value |
transformmode | TransformMode | No | TRANS_UPPER | [transform] Type of text transform to perform |
wordwraphint | Integer | No | — | [transform] number of characters per line used as hint for wordwrapping |
substringstart | Integer | No | — | [transform] start index for the substring |
substringlength | Integer | No | -1 | [transform] length of the substring, default (-1) means till endof input |
datetimeunit | TimeUnit | No | TU_SECOND | [datetime] Unit for the time returned from datetime variable, defaults to second |
datetimestring | StringVariable | No | — | [datetime] User provided date/time in ISO 8601 format, leave unset for current date/time |
httpconfig | HTTPDownloadRequestInformation | No | — | [http] Advanced configuration options for making the http requests |
PointsVariable
Type
| Value | Description |
|---|---|
constant | constant variable, use value |
file | fetch value from file |
http | fetch value over http |
map | fetch value from map of GET-parameters |
random | randomly select a value from randomvalues |
add | meta variable, that adds the values of two variables together |
target | iv tool support for selector/target based filename retrieval |
datasource | variable getting values from an iv tool datasource |
fileexists | tests if file exists |
structureddata | uses path-syntax to retrieve data from structured input (only JSON and JSONPath implemented) |
condition | unused |
logical | boolean = 66; |
StructuredDataType
Type of data for structured data in a PointsVariable
| Value | Description |
|---|---|
structured_json |
ConditionOperator
| Value | Description |
|---|---|
IN | |
NOT_IN |
BooleanOperator
| Value | Description |
|---|---|
AND | |
OR | |
NAND | |
NOR |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | Yes | — | Type of this variable |
defaultvalue | PointsVector | No | — | Default value |
source | FileLocation | No | — | [file, http, map] Location/key where the value can be retrieved |
key | String | No | — | [map] (Query-) Parameter name |
randomvalues | PointsVector[] | No | — | [random] Array of *PointsVector* objects. One value is choosen by random. |
value | PointsVector | No | — | |
variable1 | PointsVariable | No | — | [add] *PointsVector* in *variable1* will be concatinated with values from *variable2* |
variable2 | PointsVariable | No | — | [add] *PointsVector* in *variable1* will be concatinated with values from *variable2* |
column | String | No | — | [datasource] Column name |
defaultrow | String | No | — | [datasource] Row to supply data values when no key is provided |
structureddatatype | StructuredDataType | No | structured_json | |
structureddatainput | StringVariable | No | — | |
path | StringVariable | No | — | |
integerformat | StringVariable | No | — | |
floatingpointformat | StringVariable | No | — | |
conditionoperator | ConditionOperator | No | IN | |
deprecated_conditionvalues | String[] | No | — | |
conditiontruevalue | String | No | t | |
conditionfalsevalue | String | No | — | |
booleanoperator | BooleanOperator | No | AND | |
httpconfig | HTTPDownloadRequestInformation | No | — | [http] Advanced configuration options for making the http requests |
VariableInformation
Variable Information
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
entries | VariableInformationEntry[] | No | — | |
maxcombinations | Integer | No | 1 | |
datasources | DataSourceInformation[] | No | — |
VariableInformationEntry
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
key | String | Yes | — | |
values | String[] | No | — | |
undefinable | Boolean | No | false |
DataSourceInformation
Type
| Value | Description |
|---|---|
file | |
string | |
embedded |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | file | |
key | String | Yes | — | |
source | FileLocation | No | — | |
defaultrow | String | No | — | |
variable | StringVariable | No | — | |
embeddeddatasource | EmbeddedDataSourceInformation | No | — |
Animation
Function
Function are used to animate values over time. The functions use normalized values in the range [0…1] for input (x value). The computed value (y value) is usually, but not necessarily, between [0..1]. Functions can be composed with other functions via addition or multiplication, or other operators.
Type
| Value | Description |
|---|---|
inverted | f(t)=if(1-t) |
abs | f(t)=|t| |
linear | f(t)=t |
constant | f(t)=p1 |
power | f(t)=t^p1 |
sin | f(t)=sin(2pi * p1 * t) |
factor | f(t)=p1tif(t) |
overshoot | f(t)=1-(p1*(1-t)^2-(1-t))/(p1-1); |
undershoot | f(t)=(p1*t^2-t)/(p1-1); |
sigmoid | f(t) = sigmoid(param1, param2) |
switched | f(t)= 1 if p1<=t<=p2, 0 else |
timed | f(t) = if(0) if tp1 if((t-p1)/(p2 -p1)) else |
add | f(t)=mf(t)+if(t) |
subtract | f(t)=mf(t)-if(t) |
multiply | f(t)=mf(t)*if(t) |
keyframe | f(t) = lerp(LUT(t)) |
Interpolation
| Value | Description |
|---|---|
INTERPOL_LINEAR | Linear interpolation |
INTERPOL_BEZIER | Cubic Bezier interpolation |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | linear | Type of function, see Function.Type |
param1 | Number | No | — | Parameter 1 for functions (p1) |
param2 | Number | No | — | Parameter 2 for functions (p2) |
innerfunction | Function | No | — | parameter "if" for for function composition |
metafunctionparam | Function | No | — | parameter "mf" for for function composition |
keyframes | Point[] | No | — | [keyframe] Array of Points to be used as simple (not Advanced) keyframes. Point.x is interpreted as time , Point.x is interpreted as value |
extrapolate | Boolean | No | true | [keyframe] Continue to interpolate values outside of ranges given by keyframes. If false last keyframe value will be used |
advancedkeyframes | KeyFrame[] | No | — | [keyframe] Array of advanced *Keyframes* |
advancedkeyframeinterpolation | Interpolation | No | INTERPOL_LINEAR |
Function.KeyFrame
Advanced keyframes can have relative times referencing either the beginning or the end of a container, expressed either as percentage in the range [0..1] or in absolute frame numbers. They also support easing via Bezier interpolation.
Type
Time reference type: var>relative means to interpret the time as a percentage, frame means to take the value absolutely.
| Value | Description |
|---|---|
relative | |
frame |
OriginType
Constants for the origin parameter of a Keyframe in a Function
| Value | Description |
|---|---|
origin_start | |
origin_end |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | relative | Type of time reference for a *Keyframe* in a *Function*. |
time | Number | No | — | The time for this keyframe |
value | Number | No | — | The value for this keyframe |
origin | OriginType | No | origin_start | Time is relative to start or end of container |
incoming_velocity | Number | No | 0.0 | Y value of the first temporal control point |
incoming_influence | Number | No | 0.0 | X value of the first temporal control point |
outgoing_velocity | Number | No | 0.0 | Y value of the second temporal control point |
outgoing_influence | Number | No | 0.0 | X value of the second temporal control point |
incomingcontrol | Number | No | — | Incoming control value for spatial bezier interpolation |
outgoingcontrol | Number | No | — | Outgoing control value for spatial bezier interpolation |
Function.KeyFrameTrackData
Structure for a keyframe used in transformation onvolving tracking, motion tracking, or gemotric transformations. These keyframe support easing via Bezier functions.
Type
| Value | Description |
|---|---|
embedded | Use ‘points’ directly |
reference | Use the points provided by ‘trackdata’ |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | embedded | |
offset | Integer | No | 0 | frame number |
points | PointsVector | No | — | [embedded] keyframe values |
gridwidth | Integer | No | — | [embedded] grid width |
gridheight | Integer | No | — | [embedded] grid height |
incoming_velocity | Number | No | 0.0 | Y value of the first temporal control point |
incoming_influence | Number | No | 0.0 | X value of the first temporal control point |
outgoing_velocity | Number | No | 0.0 | Y value of the second temporal control point |
outgoing_influence | Number | No | 0.0 | X value of the second temporal control point |
trackdata | TrackData | No | — | [reference] TrackData object queried for points |
contentoffset | Integer | No | — | [reference] offset into the tracking data specified in 'trackdata' |
incomingcontrol | PointsVector | No | — | [embedded] Bezier control point keyframe values |
outgoingcontrol | PointsVector | No | — | [embedded] Bezier control point keyframe values |
incomingcontroltrackdata | TrackData | No | — | [reference] Bezier control points keyframe values provided by TrackData object |
outgoingcontroltrackdata | TrackData | No | — | [reference] Bezier control points keyframe values provided by TrackData object |
Data Types
Color
The color type provides properties for creating and animating colors. Colors in certain ImageProviders can be variable or can be animated to generate smooth transitions from one color to another
Type
| Value | Description |
|---|---|
constant | Fixed value |
stringvariable | Color value is provided by a variable in the form #rrggbb[aa] where rr,gg, bb and aa are hexadecimal values in the range [0..255]. Alpha (aa) defaults to 255 |
keyframe | Color value will be animated via throught the keyframes and keyframefunction. |
ColorInterpolationMode
| Value | Description |
|---|---|
color_interpolation_rgb | |
color_interpolation_lab | |
color_interpolation_hsv |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | constant | Color type |
red | Integer | No | 0 | [constant] The red component of the color |
green | Integer | No | 0 | [constant] The green component of the color |
blue | Integer | No | 0 | [constant] The blue component of the color |
alpha | Integer | No | 0 | [constant] The alpha component of the color |
string | StringVariable | No | — | [stringvariable] Variable for dynamic color in the form #rrggbb[aa] where rr,gg, bb and aa are hexadecimal values in the range [0..255]. Alpha (aa) defaults to 255 |
keyframes | ColorKeyframe[] | No | — | [keyframe] Array of keyframes for color animations |
keyframefunction | Function | No | — | [keyframe] Temporal animation function. Used for easing |
colorinterpolation | ColorInterpolationMode | No | color_interpolation_rgb | [keyframe] Color model to use for color animations |
TrackData
Type
| Value | Description |
|---|---|
file | Load data from file (json format) |
embedded | Tracking data supplied in the TrackData message |
variable | Load data for one single frame from a PointsVariable |
http | Load data via HTTP (JSON encoded) |
stringvariable | Load data via a StringVariable (JSON encoded) |
keyframe | Data from an array of KeyFrameTrackData objects |
affine | Data from an inner TrackData object transformed by affine transformations |
textposition | Data from positions of a rendered text of a ‘text’-ImageProvider |
computed | Data computed from inner data |
Interpolation
| Value | Description |
|---|---|
INTERPOL_LINEAR | Linear interpolation |
INTERPOL_BEZIER | Bezier interpolation |
Operator
| Value | Description |
|---|---|
OPERATOR_ADD | |
OPERATOR_SUB | |
OPERATOR_MUL | |
OPERATOR_DIV |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | file | |
offset | Integer | No | 0 | Frame offset |
numframes | Integer | No | 1 | Number of frames to use |
scale | Number[] | No | — | Scale all values by scale[0] (x values), scale[1] (y values) |
failfast | Boolean | No | false | Abort rendering on any error in the motion tracking data |
endbehavior | EndBehaviour | No | repeatlast | What to do if there are fewer motion data frames than the track's visual frames |
embeddeddata | EmbeddedTrackData | No | — | [embedded] Motion data for TrackData type `embedded`. |
source | FileLocation | No | — | [file, http] A FileLocation indicating the file to use |
points | PointsVariable | No | — | [variable] A PointVariable pointing to the motion data |
string | StringVariable | No | — | [stringvariable] A StringVariable pointing to the motion data |
httpalwaysload | Boolean | No | — | [http] Do not cache the loaded motion data (Slow) |
uselocalhttpproxy | Boolean | No | false | [http] Use a caching HTTP proxy to load data |
httpconfig | HTTPDownloadRequestInformation | No | — | [http] Advanced configuration options for making the http requests |
keyframes | KeyFrameTrackData[] | No | — | [keyframe] Motion data as an array of keyframes. Values in between keyframes will be interpolated |
keyframeinterpolation | Interpolation | No | INTERPOL_LINEAR | |
scaledata | TrackData | No | — | [affine] Scaling (Size) motion data for affine transformations |
rotatedata | TrackData | No | — | [affine] Rotation motion data for affine transformations |
translatedata | TrackData | No | — | [affine] Position motion data for affine transformations |
anchordata | TrackData | No | — | [affine] Anchor offset motion data for affine transformations |
innertrackdata | TrackData | No | — | [affine] Trackdata transformed by affine transformation |
text | ImageProvider | No | — | [textposition] Trackdata derived from positions of a 'textsimple' ImageProvider |
textpositiondesc | TextPositionDescription | No | — | [textposition] Options used for the text dependend position data |
computedoperator | Operator | No | OPERATOR_ADD | [computed] which operator to use to compute data from to inner trackdata objects |
computedoperand1 | TrackData | No | — | [computed] Trackdata used as first operand in computation |
computedoperand2 | TrackData | No | — | [computed] Trackdata used as second operand in computation |
FileLocation
A FileLocation specifies the location of a file (on disk or on the internet). The path specifies the qualified filename or URL of the file. Variable substitution will be performed on the following special tokens: Token $variableThe token $variable will be replaced with the result of a StringVariable $sessionThe token $session will be replaced with the current session or token ID $frameThe token $frame will be replaced with the current frame number
Type
| Value | Description |
|---|---|
simple | Default FileLocation type |
FileSystemType
| Value | Description |
|---|---|
filesystem_project | |
filesystem_userfs |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | Type | No | — | (Deprecated) : Used to indicate subsitution type. Now: all necessary substitutions are determined automatically from the path |
path | String | Yes | — | The file location with optional tokens to replace |
offset | Integer | No | 0 | Offset that is added to the framenumber before substitution |
padding | Integer | No | 5 | Frame numbers are padded with zeroes, till they are at least padding long |
variable | StringVariable | No | — | the token `$variable` will be replaced with the value of this |
filesystemtype | FileSystemType | No | filesystem_project |
Fractional
A fraction defined by numerator divided by denumerator
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
num | Integer | No | 30 | numerator |
den | Integer | No | 1 | denumerator |
Point
A 2D Point
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
x | Number | No | — | x value |
y | Number | No | — | y value |
PointsVector
A vector of 2D points
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
points | Point[] | No | — | Array of Points |
ROI
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
x | Integer | No | — | |
y | Integer | No | — | |
width | Integer | No | — | |
height | Integer | No | — |
PosAdjust
Structure for additional position and scale adjustment transformations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
scalex | Number | No | 1.0 | |
scaley | Number | No | 1.0 | |
offsetx | Number | No | 0.0 | |
offsety | Number | No | 0.0 |
Encoding Settings
StreamParams
StreamParams define settings for the rendered video. There are separate settings for the audio and video parts of the stream. Additional parameters define the behvior for streaming delivery.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
vparams | VideoParams | Yes | — | Parameters for the video stream |
aparams | AudioParams | No | — | Parameters for the video stream |
nosleep | Boolean | No | true | deprecated. Streaming behaviour |
pass | Integer | No | — | Number of passes for multi-pass encoding |
statfile | String | No | — | Filename for statistics during multi-pass encoding |
client_prebuffer | Number | No | -1 | duration in seconds the client is expected to buffer before playback starts (Streaming only) only needed for realtime streams |
encoding_quantum | Number | No | -1 | duration beeing processed 'at once' by the server only needed for realtime streams |
min_client_buffer | Number | No | 2.0 | Minimum number of seconds in client buffer (Streaming only) |
default_image_color | Color | No | — | Does this work? |
VideoParams
Settings for the video stream
VideoRateControl
Method of rate control
| Value | Description |
|---|---|
VRC_BITRATE | Control bitrate: video stream should not exceed given bitrate |
VRC_QUANTIZER | Control quantization |
VRC_RATEFACTOR | Control quality: Keep constant quality regardless of bitrate |
EncoderDelayReq
Allow encoder to withhold frames for smaller files, better quality. Only relevant for streaming render modes
| Value | Description |
|---|---|
DELAY_REALTIME | Do not keep reference frames, emit frames as fast as possible |
DELAY_SMALL | Keeo reference frames, even if it slows down streaming |
ColorSpace
| Value | Description |
|---|---|
COLORSPACE_UNSPECIFIED | |
COLORSPACE_AUTO | |
COLORSPACE_BT709 | |
COLORSPACE_BT470BG | |
COLORSPACE_SMTPE170M |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
width | Integer | Yes | — | Width of the rendered video |
height | Integer | Yes | — | Height of the rendered video |
videocodec | Codec | No | VIDEO_X264 | Video codec type |
videoframerate | Fractional | No | — | Frame rate of video (as fraction, e.g. 25/1, 30000/1001) |
videobitrate | Integer | No | 2000 | Video bitrate in kilobits per second |
videobframes | Integer | No | 0 | Number of bframes (H.264 + X.264 only) |
videogopsize | Integer | No | 30 | Number of frames in a picture group |
videoqp | Integer | No | 16 | Quantization parameter (15..50) |
videorc | VideoRateControl | No | VRC_BITRATE | Method of rate control |
videocpueffort | Number | No | 10.0 | Controls for encoder speed / quality tradeoff - range 0.0 - 100.0 guidelines to start with: **0.0**: pointlessly bad quality, extremely fast **10.0**: dont care about quality, make it fast **20.0**: general purpose 'fast' preset **50.0**: 'medium' speed/quality tradeoff, recommended encoder default **80.0**: sensible 'high quality preset' **90.0**: don't care about speed don't expect changes with every small adjustment - encoder might have a coarse granularity interpreting this |
videotransparency | Boolean | No | false | Transparency (GIF only) |
videominimumforcedkeyframeinterval | Integer | No | 45 | Minimum number of video frames after which forced keyframes will be inserted - forced keyframes split scenes into sub segments used in HLS and MPEG DASH streaming and parallel rendering |
videocolorspace | ColorSpace | No | COLORSPACE_UNSPECIFIED |
AudioParams
Audio Settings for rendered video
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
audiocodec | Codec | No | AUDIO_NONE | Audio codec |
audioabr | Integer | No | 80000 | Audio bitrate in kilobits per second |
audiosamplerate | Integer | No | 44100 | Number of audio samples per second |
audiochannels | Integer | No | 2 | Number of channels (1=mono, 2=stereo) |
audioframe_size | Integer | No | 1024 | Number of samples per audio frame |
Charts
PieChartDescription
Direction
| Value | Description |
|---|---|
clockwise | |
counterclockwise |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
finished_arcs | PieChartArcDescription[] | No | — | |
current_arc | PieChartArcDescription | No | — | |
current_arc_completion | Number | No | 1.0 | |
current_arc_completion_function | Function | No | — | |
direction | Direction | No | clockwise | |
radius | Number | No | 50 | |
offset | Number | No | — |
BarChartDescription
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
finished_bars | BarChartBarDescription[] | No | — | |
current_bar | BarChartBarDescription | No | — | |
current_bar_completion | Number | No | 1.0 | |
current_bar_completion_function | Function | No | — | |
num_bars | Integer | No | 3 | |
max_val | Number | No | 100 |
ImageBarChartDescription
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
finished_bars | ImageBarChartBarDescription[] | No | — | |
current_bar | ImageBarChartBarDescription | No | — | |
current_bar_completion | Number | No | 1.0 | |
current_bar_completion_function | Function | No | — | |
num_bars | Integer | No | 3 |
LineChartDescription
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
points | TrackData | No | — | |
num_finished_lines | Integer | No | 0 | |
current_line | Integer | No | 0 | |
current_line_completion | Number | No | 1.0 | |
current_line_completion_function | Function | No | — | |
color | Color | No | — | |
line_width | Number | No | 1.0 | |
cap_style | LineCapStyle | No | cap_round | |
min_x | Number | No | 0 | |
min_y | Number | No | 0 | |
max_x | Number | No | 1 | |
max_y | Number | No | 1 |
BezierDescription
Bezier
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
points | TrackData | No | — | |
color | Color | No | — | |
line_width | Number | No | 1.0 | |
cap_style | LineCapStyle | No | cap_round | |
completion | Number | No | 1.0 | |
completion_function | Function | No | — |
PieChartArcDescription
Pie Chart
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
percent | StringVariable | No | — | |
color | Color | No | — |
BarChartBarDescription
Bar Chart
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
value | StringVariable | No | — | |
color | Color | No | — |
ImageBarChartBarDescription
Image Bar Chart
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
value | StringVariable | No | — | |
image | ImageProvider | No | — | |
image_equivalent | Number | No | 1.0 |
Enums
Codec
Audio and video codecs available
| Value | Description |
|---|---|
VIDEO_NONE (alias: AUDIO_NONE) | No video. No Audio |
VIDEO_FLV | VP6 Flash video |
VIDEO_H263 | H.263 (Ole Flash Players) |
VIDEO_H264 | Multi-purpose H.264 (MP4, FLV, HLS, MPEG-DASH) |
VIDEO_X264_BASELINE | Low-efficiency (mobile) H.264 (MP4, FLV, HLS, MPEG-DASH) |
VIDEO_X264 | Multi-purpose (Main Profile) H.264 (MP4, FLV, HLS, MPEG-DASH) |
VIDEO_X264_HIGH | Multi-purpose (High Profile) H.264 (MP4, FLV, HLS, MPEG-DASH) |
VIDEO_VP8 | Multi-purpose VP8 Codec for WebM video |
VIDEO_MPEG2 | MPEG2 Codec for MPEG (.mpg) video |
VIDEO_WMV | Window Media (WMV) |
VIDEO_GIF | Animated GIF (small/short videos only) |
VIDEO_PRORES | Multi-pupose high-quality professional Codec (.mov) |
AUDIO_AAC | High quality ACC audio codec |
AUDIO_MP2 | MPEG-2 (obsolete) |
AUDIO_MP3 | MPEG-3 (MP3) |
AUDIO_AMR_NB | Obsolete mobile phone audio codec |
AUDIO_AMR_WB | Obsolete mobile phone audio codec |
AUDIO_VORBIS | High quality audio codec for use with VP8 video (WebM) |
AUDIO_PCM |
BlendMode
BlendMode determines how two VisualTracks (Layers) are blended into each other.
| Value | Description |
|---|---|
normal | This is the standard blend mode which uses the top layer alone |
screen | With Screen blend mode the values of the pixels in the two layers are inverted, multiplied, and then inverted again. |
softlight | This is a softer version of Hard Light. Applying pure black or white does not result in pure black or white. |
hardlight | Hard Light combines Multiply and Screen blend modes. Equivalent to Overlay, but with the bottom and top images swapped. |
overlay | Overlay combines Multiply and Screen blend modes. The parts of the top layer where the base layer is light become lighter, the parts where the base layer is dark become darker. Areas where the top layer are mid grey are unaffected. An overlay with the same picture looks like an S-curve |
multiply | Multiply blend mode multiplies the numbers for each pixel of the top layer with the corresponding pixel for the bottom layer. |
mvcclone | Mean-Value Cloning |
lineardodge | Linear Dodge performs a saturating addition of the two layers |
linearburn | Linear burn performs a saturating addition of the two layers and then inverts the result |
subtract | Subtract does a saturating subtraction of of the two layers |
difference | Difference takes the absolute difference of the two layers |
negation | Negation takes the absolute difference of the two layers with one layer inverted and inverts the result |
lighten | Lighten only blends the regions of the top layer where it is lighter than the bottom layer |
darken | Darken only blends the regions of the top layer where it is darker than the bottom layer |
EndBehaviour
Determines, what happens when requesting frames past the end of a given source. Not all values can be used in all situations.
| Value | Description |
|---|---|
repeatlast | Repeat last frame |
loop | Start again |
emptyframe | An empty frame |
fullframe | not used |
fail | Throw an error and stop rendering |
LineCapStyle
Line Chart
| Value | Description |
|---|---|
cap_square | CAIRO_LINE_CAP_SQUARE - flat endings, thickness also influences length of lines |
cap_round | CAIRO_LINE_CAP_ROUND - round endings, thickness also influences length of lines |
cap_butt | CAIRO_LINE_CAP_BUTT - flat endings, thick lines are exactly as long as thin lines |