ProductsServicesDocsPricingAboutContact Log in Sign up

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

ValueDescription
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

ValueDescription
normalA scene providing visual content through VisualTracks in tracks and audio content through Audio and AudioTracks from audio
scenebasedA scene defering to the SceneView sceneview for visual and audio content
referenceA scene referencing another scene contained in the movies scene reference section

NumframesFromMode

ValueDescription
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

ValueDescription
embeddedScenes are define inline in the scenes array
file(Deprecated) @deprecated file based scene definitions
variantThis 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

ValueDescription
stillimageOne single frame image
manipulatedimageAn single-frame image generated from an array of VisualTracks. Use to create multi-layered images, transformed or filtered images
emptyimageAn empty single-frame image with specified size and color
httpAn image loaded from a URL over http
jetcomAn image loaded from a URL using the jetcom protocol
textsimpleA rendered text
gradientA rendered gradient
imagesequenceA sequence of images loaded from disk
image32fsequenceA sequence of 32bit floating point images loaded from disk
textcurvedA sequence generated by rendering Text between to (moving) lines
textquadA sequence generated by rendering Text into a moving Quad
textmultilineA sequence generated by rendering Text (inserting linebreaks) into a moving Quad
decoder(Deprecated) @deprecated A sequence decoded form a video
videoA video as zipped image sequence or video file, with scale aware disk cache
livevideohttp live video stream
scenebasedImage sequences created by rendering a Scene or SceneVariant object
comicbookInternal. Will be moved to a SDL extension module in the future
customInternal.
masksourceAn image provider that can act as a matte for a compose operation
piechartDraw (and animate) a pie chart.
barchartDraw (and animate) a bar chart
imagebarchartDraw (and animate) a bar chart made from images
linechartDraw (and animate) a line chart
bezierDraw (and animate) a bezier line
pathDraw and fill (and animate) a bezier-based shape
stringImage data as data url or SVG+XML from a variable

TextAlignment

Horizontal Alignment options for textsimple

ValueDescription
flushleft
centered
flushright

TextPosition

Vertical lignment options for textsimple

ValueDescription
top
middle
bottom

TextureStyle

Image texture fill styles

ValueDescription
texturestyle_line
texturestyle_full
texturestyle_tiled
texturestyle_tiledline
texturestyle_segments
texturestyle_tiledsegments

TextGlyphColorMode

ValueDescription
textglyphcolormode_defaultdefault mode, use color or texture configured
textglyphcolormode_fontembeddedsue font embedded color information, used for bitmap fonts or embedded SVG, etc.

TextOverflowBehaviour

ValueDescription
textoverflowbehaviour_noneDo nothing, let text overflow the box
textoverflowbehaviour_scale_x
textoverflowbehaviour_fs_y_scale_x
textoverflowbehaviour_fs
textoverflowbehaviour_ref

TextWritingMode

ValueDescription
textwritingmode_lrtb
textwritingmode_lrbt
textwritingmode_tblr
textwritingmode_tbrl

TextCharacterPositionMode

ValueDescription
charposition_charbasedUse the bounding box of the individual character
charposition_fontbasedUse 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

ValueDescription
gradientdesctype_embeddedUse the gradient description specified via ‘gradientdescription’ parameter
gradientdesctype_stringParse 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

ValueDescription
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

ValueDescription
ANCHORPOINT_CHARS
ANCHORPOINT_WORDS
ANCHORPOINT_LINES
ANCHORPOINT_ALL

PropertyType

ValueDescription
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

ValueDescription
type_containerContainer type, needs 0 or 1 base and 0..n text components and nothing else inside
type_baseBase type, needs to be the first component in its container
type_textText type
type_reserveReserve type

Align

ValueDescription
align_startAlign at the start of the ruby container (left justified/top justified)
align_centerAlign at the center of the ruby container
align_endAlign at the end of the ruby container (right justified/bottom justified)

Position

ValueDescription
position_beforePosition before the base
position_afterPosition after the base
position_outsidePosition before the first line and after every other line

Reserve

ValueDescription
reserve_bothReserve space before and after the line(s)
reserve_beforeReserve space before the line(s)
reserve_afterReserve space after the line(s)
reserve_outsideFor 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

ValueDescription
gradient_linearA linear gradient
gradient_radialA radial gradient
gradient_conicA conic gradient

Shape

ValueDescription
shape_ellipse
shape_circle

RadialSize

ValueDescription
radialsize_farthest_cornerCircle/ellipse goes through the farthest corner from the middle
radialsize_farthest_sideCircle/ellipse touches the farthest side(s) from the middle
radialsize_closest_cornerCircle/ellipse goes through the closest corner from the middle
radialsize_closest_sideCircle/ellipse touches the closest side(s) from the middle
radialsize_absoluteCircle/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

ValueDescription
type_straight
type_bezier

DrawMethod

ValueDescription
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

ValueDescription
blurGaussian blur
motionblurMotion blur
trackedmotionblurMotion blur, with parameters derived from average motion of tracking data
inpaintinpainting of points
maskmasking by alpha mask
mlsMoving Least Squares image morphing (deprecated, use morph with morph_mls morphtype instead
morphmorphing image through MLS or TPS
linearzoominviewpoint transformation zoom in
linearzoomoutviewpoint transformation zoom out
intensitychange saturation of the image
rotaterotate the image
invertinvert the image
premultiplyalphamake the image premultiplied/unpremultiplied
minimaxMinimax effect from After Effects, uses image morphology operations (dilate/erode), sets pixels to the minimum/maximum value of their neighbourhood
circularblurCircular blur
radialblurRadial blur
scalingscaling of input image
scalingletterscaling of input image preserving aspect ratio
scalingaspectscaling to a specified width or height with aspect ratio
scalingcropscaling to a specified width or height with aspect ratio
cropcropping of the image with x/y offset and specified size
mipmapscale down to an(implicitly) specified size (mipmap) for further use in ContextSize transformations/to avoid interpolation artifacts
facedetectdetect a face and crop the input around it
quadtracking (alias: warp)warping to quad track data
warpbackwarping from quad track data
warpquadswarping from quad track data to quad track data
gridtracking (alias: gridwarp)warping to grid track data
texturemapping32fwarping to image map
animateanimate the input
affineaffine transformation (2D) similar to animate
affinemotionbluraffine transformation (2D) similar to animate
pointpastetranslate to a tracking point
customcustom
croprotatewarpCrop, rotate & warp in one step. Data supplied dynamically
flipFlip image around given FlipAxis
colortwistPerform 3D color transformation
colorboostBoost saturation of colors
nashvilleInstagramm like Nashville filter
lordkelvinInstagramm like Lord Kelvin filter
splittoningColorize specific color range, grayscale the rest
tiltshiftDepth of field simulation
sincityInstagramm like Sin City filter
glowGlow Effect
vignetteVignette (darken edges with circular center)
comicCartoonize image (optionally perform Roy Lichtenstein color dithering)
textshadowDrop shadow
cubelut3-D color lookup table
distortionmapDistort image based on distortionmap *

ComicColorReductMethod

Method used for color reduction, after bilateral filtering.

ValueDescription
fixedColor 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.
adaptiveCorrect adaptive color reduction. Based on image content, the colors for best perceptional image representation will be determined. Should not be used with video content
rlichtensteinSpecial 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

ValueDescription
flipx
flipy

Morph

Image morphing mode

ValueDescription
morph_mls
morph_tps
morph_mls_legacy

RotationMode

ValueDescription
clockwise90
counterclockwise90
autolandscapecw
autolandscapeccw
autoportraitcw
autoportraitccw

MipMapType

Mip mapping (Resolution/Size dependant scaling)

ValueDescription
mipmap_trackdatabased
mipmap_maskbased_alpha
mipmap_maskbased_grayscale

InvertBehaviour

Invert color and/or alpha channel of an image

ValueDescription
invertbehaviour_color_channels
invertbehaviour_alpha
invertbehaviour_color_channels_and_alpha

MiniMaxMode

ValueDescription
minimax_minimum
minimax_maximum
minimax_minimumthenmaximum
minimax_maximumthenminimum

AffinePositionMode

ValueDescription
affineposition_topleft
affineposition_topright
affineposition_bottomleft
affineposition_bottomright
affineposition_center
affineposition_centertop
affineposition_centerbottom
affineposition_centerleft
affineposition_centerright

ColorSpace

ValueDescription
COLORSPACE_HSV
COLORSPACE_HLS

ScalingAlignment

ValueDescription
scalingalign_left
scalingalign_center
scalingalign_right

ScalingPosition

ValueDescription
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

ValueDescription
legacyhard-clip audio track when applying gain, mixing tracks will never overdrive, intermodulation artifacts may occur
legacy_softgainsoft-clip audio track when applying gain, mixing tracks will never overdrive, intermodulation artifacts may occur
hardclipgenerally hard clip sample amplitude at overflows
softclipsoft clip sample amplitude at overflows - less audible distortion
softclip4xsoft clip with 4x oversampling (avoids aliasing, more cpu-intensive)

Type

Source type

ValueDescription
preencodedaudio source is preencoded aac
mixaudio source is wav, mixed with underlying AudioTracks, deprecated use video_mix
replaceaudio source is wav, replacing underlying AudioTracks, deprecated use video_replace
decoderaudio source is a video, mixed with underlying AudioTracks , deprecated use video_mix
decoder_replaceaudio source is a video, replacing underlying AudioTracks, deprecated use videoreplace
video_mixaudio source is a video, but the audio is cached in a .wav-file, mixed with underlying AudioTracks
video_replaceaudio source is a video, but the audio is cached in a .wav-file, replacing underlying AudioTracks
scenebasedbased on a sceneview
emptycreate silent track
changevolumechange volume of tracks rendered up to this point
liveLive (Remote) audio source
live_replaceLive (Remote) audio source, no mixing
syntheticdynamically synthesized audio track, no mixing
synthetic_mixdynamically synthesized audio track
backtobackcombining track that plays inner audiotracks backtoback even on variable lengths
media_replace
provided_mixAudio from ‘audioprovider’ is mixed with underlying audio tracks
provided_replaceAudio 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

ValueDescription
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

ValueDescription
constantconstant variable, use value
filefetch value from file, discontinued
httpfetch value over http
mapfetch value from map of GET-parameters
randomrandomly select a value from randomvalues
addmeta variable, that adds the values of two variables together
targetiv tool support for selector/target based filename retrieval
datasourcevariable getting values from an iv tool datasource
fileexiststests if file exists
structureddatauses path-syntax to retrieve data from structured input (only JSON and JSONPath implemented)
conditionevaluates condition using variable1 comparing with operator to specified values, intended for enablevars
logicalwas boolean
counterchanges value from counterstart to counterend based on function, expects parsable input
urlescapeescapes value of inner variable for use in URLS
transformtransform string value of inner variable
formattemplate variable, taking template substitution values directly from a context build from the map parameters
datetimetime providing variable, that gives either current date/time or user specified date/time as floating point number (e.g. for use in counter)

StructuredDataType

ValueDescription
structured_json

ConditionOperator

ValueDescription
IN
NOT_IN
BEGINS_WITH
ENDS_WITH

BooleanOperator

ValueDescription
AND
OR
NAND
NOR
NOT

CounterValueType

ValueDescription
CVT_START_END
CVT_OFFSET_TO_START
CVT_OFFSET_TO_END

CounterFormat

Counter value interpretation mode

ValueDescription
FORMAT_INT
FORMAT_FLOAT
FORMAT_TIME

RoundingMode

Rounding mode for counter type StringVariables

ValueDescription
RND_ROUND
RND_CEIL
RND_FLOOR

TimeUnit

Time units for Counter type StringVariables

ValueDescription
TU_MILLISECOND
TU_SECOND
TU_MINUTE
TU_HOUR
TU_DAY

TransformMode

String transformations for StringVariable

ValueDescription
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

ValueDescription
constantconstant variable, use value
filefetch value from file
httpfetch value over http
mapfetch value from map of GET-parameters
randomrandomly select a value from randomvalues
addmeta variable, that adds the values of two variables together
targetiv tool support for selector/target based filename retrieval
datasourcevariable getting values from an iv tool datasource
fileexiststests if file exists
structureddatauses path-syntax to retrieve data from structured input (only JSON and JSONPath implemented)
conditionunused
logicalboolean = 66;

StructuredDataType

Type of data for structured data in a PointsVariable

ValueDescription
structured_json

ConditionOperator

ValueDescription
IN
NOT_IN

BooleanOperator

ValueDescription
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

ValueDescription
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

ValueDescription
invertedf(t)=if(1-t)
absf(t)=|t|
linearf(t)=t
constantf(t)=p1
powerf(t)=t^p1
sinf(t)=sin(2pi * p1 * t)
factorf(t)=p1tif(t)
overshootf(t)=1-(p1*(1-t)^2-(1-t))/(p1-1);
undershootf(t)=(p1*t^2-t)/(p1-1);
sigmoidf(t) = sigmoid(param1, param2)
switchedf(t)= 1 if p1<=t<=p2, 0 else
timedf(t) = if(0) if tp1 if((t-p1)/(p2 -p1)) else
addf(t)=mf(t)+if(t)
subtractf(t)=mf(t)-if(t)
multiplyf(t)=mf(t)*if(t)
keyframef(t) = lerp(LUT(t))

Interpolation

ValueDescription
INTERPOL_LINEARLinear interpolation
INTERPOL_BEZIERCubic 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.

ValueDescription
relative
frame

OriginType

Constants for the origin parameter of a Keyframe in a Function

ValueDescription
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

ValueDescription
embeddedUse ‘points’ directly
referenceUse 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

ValueDescription
constantFixed value
stringvariableColor 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
keyframeColor value will be animated via throught the keyframes and keyframefunction.

ColorInterpolationMode

ValueDescription
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

ValueDescription
fileLoad data from file (json format)
embeddedTracking data supplied in the TrackData message
variableLoad data for one single frame from a PointsVariable
httpLoad data via HTTP (JSON encoded)
stringvariableLoad data via a StringVariable (JSON encoded)
keyframeData from an array of KeyFrameTrackData objects
affineData from an inner TrackData object transformed by affine transformations
textpositionData from positions of a rendered text of a ‘text’-ImageProvider
computedData computed from inner data

Interpolation

ValueDescription
INTERPOL_LINEARLinear interpolation
INTERPOL_BEZIERBezier interpolation

Operator

ValueDescription
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

ValueDescription
simpleDefault FileLocation type

FileSystemType

ValueDescription
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

ValueDescription
VRC_BITRATEControl bitrate: video stream should not exceed given bitrate
VRC_QUANTIZERControl quantization
VRC_RATEFACTORControl quality: Keep constant quality regardless of bitrate

EncoderDelayReq

Allow encoder to withhold frames for smaller files, better quality. Only relevant for streaming render modes

ValueDescription
DELAY_REALTIMEDo not keep reference frames, emit frames as fast as possible
DELAY_SMALLKeeo reference frames, even if it slows down streaming

ColorSpace

ValueDescription
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

ValueDescription
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

ValueDescription
VIDEO_NONE (alias: AUDIO_NONE)No video. No Audio
VIDEO_FLVVP6 Flash video
VIDEO_H263H.263 (Ole Flash Players)
VIDEO_H264Multi-purpose H.264 (MP4, FLV, HLS, MPEG-DASH)
VIDEO_X264_BASELINELow-efficiency (mobile) H.264 (MP4, FLV, HLS, MPEG-DASH)
VIDEO_X264Multi-purpose (Main Profile) H.264 (MP4, FLV, HLS, MPEG-DASH)
VIDEO_X264_HIGHMulti-purpose (High Profile) H.264 (MP4, FLV, HLS, MPEG-DASH)
VIDEO_VP8Multi-purpose VP8 Codec for WebM video
VIDEO_MPEG2MPEG2 Codec for MPEG (.mpg) video
VIDEO_WMVWindow Media (WMV)
VIDEO_GIFAnimated GIF (small/short videos only)
VIDEO_PRORESMulti-pupose high-quality professional Codec (.mov)
AUDIO_AACHigh quality ACC audio codec
AUDIO_MP2MPEG-2 (obsolete)
AUDIO_MP3MPEG-3 (MP3)
AUDIO_AMR_NBObsolete mobile phone audio codec
AUDIO_AMR_WBObsolete mobile phone audio codec
AUDIO_VORBISHigh quality audio codec for use with VP8 video (WebM)
AUDIO_PCM

BlendMode

BlendMode determines how two VisualTracks (Layers) are blended into each other.

ValueDescription
normalThis is the standard blend mode which uses the top layer alone
screenWith Screen blend mode the values of the pixels in the two layers are inverted, multiplied, and then inverted again.
softlightThis is a softer version of Hard Light. Applying pure black or white does not result in pure black or white.
hardlightHard Light combines Multiply and Screen blend modes. Equivalent to Overlay, but with the bottom and top images swapped.
overlayOverlay 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
multiplyMultiply blend mode multiplies the numbers for each pixel of the top layer with the corresponding pixel for the bottom layer.
mvccloneMean-Value Cloning
lineardodgeLinear Dodge performs a saturating addition of the two layers
linearburnLinear burn performs a saturating addition of the two layers and then inverts the result
subtractSubtract does a saturating subtraction of of the two layers
differenceDifference takes the absolute difference of the two layers
negationNegation takes the absolute difference of the two layers with one layer inverted and inverts the result
lightenLighten only blends the regions of the top layer where it is lighter than the bottom layer
darkenDarken 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.

ValueDescription
repeatlastRepeat last frame
loopStart again
emptyframeAn empty frame
fullframenot used
failThrow an error and stop rendering

LineCapStyle

Line Chart

ValueDescription
cap_squareCAIRO_LINE_CAP_SQUARE - flat endings, thickness also influences length of lines
cap_roundCAIRO_LINE_CAP_ROUND - round endings, thickness also influences length of lines
cap_buttCAIRO_LINE_CAP_BUTT - flat endings, thick lines are exactly as long as thin lines