DailyStreamingLayoutConfig controls how participant video is composed when cloud recording or live streaming. It is a discriminated union — the preset field determines which layout is used and which additional fields are available.
layout field of DailyStreamingOptions when calling startRecording(), updateRecording(), startLiveStreaming(), or updateLiveStreaming().
DailyLiveStreamingLayoutConfig is the same union with one difference: the audio-only preset is not available for live streaming.participants
Several presets accept an optionalparticipants config that controls which participants are included in the composition and in what order.
string[]
Optional. An ordered list of participant
session_id values to include in the video composition. Participants not in this list are excluded.string[]
Optional. An ordered list of participant
session_id values to include in the audio mix.string
Optional. Sort method for participants. Currently only
'active' is supported, which sorts by recent speaking activity.Presets
default
Shows up tomax_cam_streams participant camera tiles in a grid. This is the default if no layout is specified.
string
Always
"default".number
Optional. Maximum number of camera tiles to show. Defaults to 9.
DailyStreamingParticipantsConfig
Optional. See participants above.
single-participant
Fills the frame with one participant’s camera feed.string
Always
"single-participant".string
The
session_id of the participant to feature.active-participant
Fills the frame with the currently active speaker’s camera feed.string
Always
"active-participant".DailyStreamingParticipantsConfig
Optional. See participants above.
portrait
Stacks participant tiles vertically, optimized for portrait (mobile) aspect ratios.string
Always
"portrait".string
Optional. Layout variant:
'vertical' (stacked column) or 'inset' (active speaker fills the frame with a small inset tile). Defaults to 'vertical'.number
Optional. Maximum number of camera tiles to show.
DailyStreamingParticipantsConfig
Optional. See participants above.
audio-only
Records audio without any video composition.Available for cloud recordings only. Not supported for live streaming — use
DailyStreamingLayoutConfig rather than DailyLiveStreamingLayoutConfig when passing this preset to startRecording().string
Always
"audio-only".DailyStreamingParticipantsConfig
Optional. See participants above.
raw-tracks-audio-only
Records raw audio tracks without mixing. Each participant’s audio is captured as a separate track.string
Always
"raw-tracks-audio-only".custom
Renders a custom composition using Daily’s compositor. Requires acomposition_id when starting a stream or recording; composition_id cannot be changed mid-session via an update call.
string
Always
"custom".string
The ID of the custom composition to use. Required when starting — cannot be changed on update calls.
object
Optional. Key/value pairs passed to the composition as parameters. Values must be
boolean, number, or string. Can be updated mid-session via updateRecording() or updateLiveStreaming().object
Optional. Key/value pairs mapping asset names to URLs, made available to the composition. Only valid when starting — cannot be set on update calls.
DailyStreamingParticipantsConfig
Optional. See participants above.
VCS baseline composition
Paid plan only When usingpreset: 'custom', you can set composition_id to 'daily:baseline' to use Daily’s built-in VCS baseline compositor. The composition_params object then accepts the following properties to control layouts, overlays, and other visual elements.
Baseline composition properties
string
default:"grid"
Sets the layout mode. Valid options:
- single: Show a single full-screen video.
- split: Show the first two participants side-by-side.
- grid: Show up to 20 videos in a grid layout.
- dominant: Show the active speaker in a large pane on the left, with additional video thumbnails on the right.
- pip: Show the active speaker in a full-screen view, with the first participant inlaid in a corner.
boolean
default:"false"
Sets whether a text overlay is displayed. You can configure the contents of the overlay with the
text.* properties.boolean
default:"false"
Sets whether an image overlay is displayed. You can configure the display of the overlay with the
image.* properties. The image used must be passed in the session_id layout option when the stream or recording is started.boolean
default:"false"
Sets whether a banner overlay is displayed. The banner can be used for TV-style “lower third” graphics, or displayed in any corner. You can configure the content of the overlay with the
banner.* properties.boolean
default:"false"
Sets whether a WebFrame overlay is displayed. You can configure the display of this live web browser overlay with the
webFrame.* properties. The URL and the browser viewport size can be changed while your stream or recording is running.boolean
default:"false"
Sets whether a sidebar is displayed. You can configure the display of the sidebar with the
sidebar.* properties.boolean
default:"false"
Sets whether a title screen (a “slate”) is displayed. You can configure the display of the slate with the
titleSlate.* properties.boolean
default:"false"
Sets whether a title screen (a “slate”) is automatically shown at the start of the stream. You can configure the display of this automatic slate with the
openingSlate. properties.number
default:"25"
Limits the number of non-screenshare streams that are included in the output.
string
default:""
Lets you do render-time reordering of video inputs according to participant IDs within a Daily room. To enable this sorting, pass a comma-separated list of participant IDs as the value for this param; video inputs matching these IDs will be moved to the top of the list. If you pass an ID that is not present in the room, it’s ignored. All other video inputs will remain in their original order. The default value is an empty string indicating no reordering. Also note that
videoSettings.preferScreenshare takes precedence over the ordering passed here. For more information about how participants and videos are sorted, see the section on selecting participants.When enabled, screen share inputs will be sorted before camera inputs. This is useful when prioritizing screen shares in your layout, especially when all inputs are not included in the final stream. For more information about how participants and videos are sorted, see the section on selecting participants.
boolean
default:"false"
When enabled, paused video inputs will not be included. By default this is off, and paused inputs are displayed with a placeholder graphic. (“Paused video” means that the video track for a participant is not available, either due to user action or network conditions.)
boolean
default:"false"
When enabled, audio-only inputs will not be included in rendering. By default this is off, and audio participants are displayed with a placeholder graphic.
When enabled, any screenshare video inputs beyond the first one will not be included in rendering. You can control the ordering of the inputs using the
layout.participants property to explicitly select which participant should be first in the list of inputs.boolean
default:"false"
Sets whether call participants’ names are displayed on their video tiles.
boolean
default:"false"
Sets whether to display video tiles with squared or rounded corners. Note that some modes (
dominant and pip) have additional params to control whether the main video has rounded corners or not.number
default:"1.2"
Sets the corner radius applied to video layers when
videoSettings.roundedCorners is enabled, in grid units.string
default:"fill"
Controls how source video is displayed inside a tile if they have different aspect ratios. Use
'fill' to crop the video to fill the entire tile. Use 'fit' to make sure the entire video fits inside the tile, adding letterboxes or pillarboxes as necessary.Controls how a screenshare video is displayed inside a tile if they have different aspect ratios. Use
'fill' to crop the video to fill the entire tile. Use 'fit' to make sure the entire video fits inside the tile, adding letterboxes or pillarboxes as necessary.string
default:"rgb(0, 50, 80)"
Sets the background color for video placeholder tile. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"rgb(255, 255, 255)"
Sets the highlight color. It’s used as the border color to indicate the ‘dominant’ video input (typically the active speaker). Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
number
default:"0.2"
Sets the stroke width used to render a highlight border. See also
'videoSettings.highlight.color'. Specified in grid units.number
default:"0"
Sets the visual margin between the two video layers shown in
split mode, in grid units.string
default:"auto-by-viewport"
Selects whether the
'split' layout mode is rendered in a horizontal or vertical configuration. The default value 'auto-by-viewport' means that the split direction will be automatically selected to be most appropriate for the current viewport size: if the viewport is landscape or square, the split axis is vertical; if portrait, the split axis is horizontal. Valid options: 'auto-by-viewport', 'vertical', 'horizontal'string
default:""
Overrides the scaleMode setting for the
split layout mode. Both sides of the split can have separately defined scale modes. Pass a comma-separated list such as fill, fit (this would set the left-hand side video to fill and the right-hand side video to fit). See documentation for the videoSettings.scaleMode parameter for the valid options. Note that this setting also overrides videoSettings.scaleModeForScreenshare.boolean
default:"false"
When enabled, the layout will automatically switch to
dominant mode from grid if a screenshare video input is available. By using this automatic behavior, you avoid having to manually switch the mode via an API call.number
default:"-1"
Overrides the visual margin between items in
grid mode, in grid units. The default value of -1 means that the layout algorithm selects a reasonable margin automatically depending on the number of videos.number
default:"-1"
Overrides the outer padding around items in
grid mode, in grid units. The default value of -1 means that the layout algorithm selects a reasonable padding automatically depending on the number of videos.boolean
default:"true"
By default, the
grid mode will highlight the dominant video (typically the “active speaker”) with a light outline. You can disable the highlight using this setting.boolean
default:"true"
By default, the layout for the
grid mode will try to preserve the aspect ratio of the input videos, i.e. avoid cropping the videos and instead add margins around the grid if needed. Setting this parameter to false will make the grid layout fill all available area, potentially cropping the videos.string
default:"left"
Control where the dominant (or “active speaker”) video is displayed in the
dominant layout mode. Values are left, right, top or bottom.number
default:"0.8"
Sets the position of the imaginary line separating the dominant video from the smaller tiles when using the
dominant layout. Values are from 0 to 1. The default is 0.8, so if videoSettings.dominant.position is set to left, the dominant video will take 80% of the width of the screen on the left.number
default:"5"
Controls how many “chiclets”, or smaller video tiles, appear alongside the dominant video when using the
dominant layout.boolean
default:"true"
When in
dominant mode, the large tile displays the active speaker by default. Turn off this followDomFlag to display the first participant instead of the active speaker.number
default:"0.7"
Margin between the “chiclet” items, in grid units.
number
default:"0.5"
Padding around the row/column of “chiclet” items, in grid units.
number
default:"0"
Margin between the “dominant” video and the row/column of “chiclet” items, in grid units.
boolean
default:"true"
Sets whether the “dominant” video will be rendered with rounded corners when
videoSettings.roundedCorners is enabled. Defaults to false because sharp corners are a more natural choice for the default configuration where the dominant video is tightly aligned to viewport edges.string
default:"top-right"
Sets the position of the smaller video in the
pip (picture-in-picture) layout. Valid options: 'top-left', 'top-right', 'bottom-left', 'bottom-right'.number
default:"1"
Sets the aspect ratio of the smaller video in the
pip layout. The default is 1.0, which produces a square video.number
default:"12"
Sets the height of the smaller video in the
pip layout, measured in grid units.number
default:"1.5"
Sets the margin between the smaller video and the edge of the frame in the
pip layout, in grid units.boolean
default:"false"
When in “pip” (or picture-in-picture) mode, the overlay tile displays the first participant in the participant array by default. Turn on this
followDomFlag to display the active speaker instead.boolean
default:"true"
Sets whether the main video in
pip mode will be rendered with rounded corners when videoSettings.roundedCorners is enabled. Defaults to false because sharp corners are a more natural choice for the default configuration where the main video is full-screen (no margin to viewport edges).string
default:"Roboto"
Sets the participant label style option: font family. Valid options:
DMSans, Roboto, RobotoCondensed, Bitter, Exo, Magra, SuezOne, Tekostring
default:"600"
Sets the participant label text font weight. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.number
default:"100"
Sets the participant label text font size.
number
default:"0"
Sets the offset value for participant labels on the x-axis, measured in grid units.
number
default:"0"
Sets the offset value for participant labels on the y-axis, measured in grid units.
string
default:"white"
Sets the participant label font color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"rgba(0, 0, 0, 0.9)"
Sets the label font stroke color (the line outlining the text letters). Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
number
default:"0"
Sets the left margin value applied to videos (in any layout mode), in grid units. You can use these
videoSettings.margin.* params to shrink the video area, for example to make room for overlays.number
default:"0"
Sets the right margin value applied to videos (in any layout mode), in grid units. You can use these
videoSettings.margin.* params to shrink the video area, for example to make room for overlays.number
default:"0"
Sets the top margin value applied to videos (in any layout mode), in grid units. You can use these
videoSettings.margin.* params to shrink the video area, for example to make room for overlays.number
default:"0"
Sets the bottom margin value applied to videos (in any layout mode), in grid units. You can use these
videoSettings.margin.* params to shrink the video area, for example to make room for overlays.string
default:""
Sets the string to be displayed if
showTextOverlay is true.string
default:"param"
Sets the data source used for the text displayed in the overlay. The default value ‘param’ means that the value of param
text.content is used. Valid options: param, highlightLines.items, chatMessages, transcriptstring
default:"center"
Sets the horizontal alignment of the text overlay within the video frame. Values are
left, right, or center.string
default:"center"
Sets the vertical alignment of the text overlay within the video frame. Values are
top, bottom, or center.number
default:"0"
Sets an x-offset (horizontal) to be applied to the text overlay’s position based on the values of
text.align_horizontal and text.align_vertical.number
default:"0"
Sets a y-offset (vertical) to be applied to the text overlay’s position based on the values of
text.align_horizontal and text.align_vertical.number
default:"0"
Applies a rotation to the text overlay. Units are degrees, and positive is a clockwise rotation.
string
default:"DMSans"
Sets the font of the text overlay. Valid options:
DMSans, Roboto, RobotoCondensed, Anton, Bangers, Bitter, Exo, Magra, PermanentMarker, SuezOne, Tekostring
default:"500"
Selects a weight variant from the selected font family. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.string
default:""
Sets the font style for text. Valid options: ‘normal’,‘italic’.
number
default:"2.5"
Sets the text overlay font size using grid units (gu). By default, one grid unit is 1/36 of the smaller dimension of the viewport (e.g. 20px in a 1280*720 stream).
string
default:"rgba(255, 250, 200, 0.95)"
Sets the color and transparency of the text overlay. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"rgba(0, 0, 0, 0.8)"
Sets the color of the stroke drawn around the characters in the text overlay. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
number
default:"0.5"
Sets the width of the stroke drawn around the characters in the text overlay. Specified in grid units.
text
default:"rgba(255, 255, 0, 1)"
Sets the color and transparency of a highlighted item in the text overlay. To display a highlight, the value of param
text.source must be set to highlightLines.items. Valid options:- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
enum
default:"700"
Sets the font weight of a highlighted item in the text overlay. To display a highlight, the value of param
text.source must be set to highlightLines.items.string
default:"overlay.png"
Sets the overlay image. Icon asset must be included in
session_assets object. showImageOverlay must be true.text
default:""
Sets an emoji to be rendered instead of an image asset. If this string is non-empty, it will override the value of
image.assetName. The string value must be an emoji.string
default:"top-right"
Sets position of overlay image. Valid options:
'top-left', 'top-right', 'bottom-left', 'bottom-right'boolean
default:"false"
Sets overlay image to full screen.
number
default:"1.778"
Sets aspect ratio of overlay image.
number
default:"12"
Sets height of overlay image, in grid units.
number
default:"1.5"
Sets margin between the overlay image and the viewport edge, in grid units.
number
default:"1"
Sets opacity of overlay image, in range 0-1. Default value of 1 is full opacity.
boolean
default:"true"
Sets the overlay image to fade in or out when the
showImageOverlay property is updated.string
default:""
Sets the web page URL to be loaded into the WebFrame overlay’s embedded browser.
number
default:"1280"
Sets the width of the embedded browser window used to render the WebFrame overlay.
number
default:"720"
Sets the height of the embedded browser window used to render the WebFrame overlay.
string
default:"top-right"
Sets position of the WebFrame overlay. Valid options:
'top-left', 'top-right', 'bottom-left', 'bottom-right'boolean
default:"false"
Sets the WebFrame overlay to full screen.
number
default:"12"
Sets height of the WebFrame overlay, in grid units.
number
default:"1.5"
Sets margin between the WebFrame overlay and the viewport edge, in grid units.
number
default:"1"
Sets opacity of the WebFrame overlay, in range 0-1. Default value of
1 is full opacity.boolean
default:"true"
Sets the WebFrame overlay to fade in or out when the
showWebFrameOverlay property is updated.string
default:"ArrowRight"
Sets the keyboard key to be sent to the WebFrame browser in a simulated key press. Valid options:
- Digits 0 - 9
- Letters A - Z
- ASCII special characters, e.g. !, @, +, >, etc.
- Function keys F1 - F12
- Enter
- Escape
- Backspace
- Tab
- Arrow keys ArrowUp, ArrowDown, ArrowLeft, ArrowRight
- PageDown, PageUp
string
default:""
Sets keyboard modifier keys to be sent to the WebFrame browser in a simulated key press. Valid options:
"Shift", "Control", "Alt", "Meta" (on a Mac keyboard, Alt is equal to Option and Meta is equal to Command).number
default:"0"
Triggers a simulated key press to be sent to WebFrame. To send a key press, increment the value of
key. (Note the difference between this and keyName which is the simulated key to be sent.)text
default:"Hello world"
Sets the title text displayed in the banner component.
text
default:"This is an example subtitle"
Sets the subtitle text displayed in the banner component.
string
default:"param"
Sets the data source for the text displayed in the banner component. Valid options:
param, highlightLines.items, chatMessages, transcriptstring
Sets position of the banner component. Valid options:
'top-left', 'top-right', 'bottom-left', 'bottom-right'boolean
default:"true"
Sets the banner to fade in or out when the
showBannerOverlay property is updated.number
default:"0"
Horizontal margin, specified in grid units.
number
default:"1"
Vertical margin, specified in grid units.
number
default:"2"
Padding inside the component, specified in grid units.
boolean
default:"false"
Sets whether the banner component will always use its maximum width (specified using
banner.maxW_pct_default and banner.maxW_pct_portrait). If false, the banner component will shrink horizontally to fit text inside it, if appropriate.number
default:"65"
Sets the maximum width for the banner component, as a percentage of the viewport size.
number
default:"90"
Sets the maximum width for the banner component, as a percentage of the viewport size, applied only when the viewport aspect ratio is portrait (i.e. smaller than 1). This override is useful because on a narrow screen the banner display typically needs more horizontal space than on a landscape screen.
number
default:"0"
Applies a rotation to the banner component. Units are degrees, and positive is a clockwise rotation.
number
default:"0"
Sets the corner radius of the banner component outline. Specified in grid units.
boolean
default:"true"
Sets whether an icon is displayed in the banner component (
true or false).text
default:""
Sets image asset value for the banner icon. Icon asset must be included in
session_assets object.text
default:"🎉"
Sets an emoji to be rendered as the banner icon. If this string is non-empty, it will override
banner.icon.assetName. The string value must be an emoji.number
default:"3"
Sets the size of the banner icon, specified in grid units.
text
default:"rgba(50, 60, 200, 0.9)"
Sets the banner component’s background color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
text
default:"rgba(0, 0, 30, 0.44)"
Sets the color of the outline drawn around the banner component. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
number
default:"0"
Sets the width of the stroke drawn around the banner component. Specified in grid units.
text
default:"white"
Sets the banner component’s text color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
text
default:"rgba(0, 0, 0, 0.1)"
Sets the color of the stroke drawn around the characters in the banner component. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
number
default:"0.5"
Sets the width of the stroke drawn around the characters in the banner component. Specified in grid units.
string
default:"Roboto"
Sets the font of text displayed in the banner component. Valid options:
DMSans, Roboto, RobotoCondensed, Anton, Bangers, Bitter, Exo, Magra, PermanentMarker, SuezOne, Tekonumber
default:"2"
Sets the banner title font size using grid units (gu). By default, one grid unit is 1/36 of the smaller dimension of the viewport (e.g. 20px in a 1280*720 stream).
string
default:"500"
Sets the banner title font weight. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.string
default:""
Sets the font style for the banner title. Valid options: ‘normal’,‘italic’.
number
default:"1.5"
Sets the banner subtitle font size using grid units (gu). By default, one grid unit is 1/36 of the smaller dimension of the viewport (e.g. 20px in a 1280*720 stream).
string
default:"300"
Sets the banner subtitle font weight. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.string
default:""
Sets the font style for the banner subtitle. Valid options: ‘normal’,‘italic’.
number
default:"0"
Triggers display of toast component. To send a toast, increment the value of
keystring
default:"Hello world"
Sets text displayed in toast component.
string
default:"param"
Sets the data source used for the text displayed in the toast component. The default value
param means that the value of param toast.content is used. Valid options: param, chatMessages, transcriptnumber
default:"4"
Sets duration of time toast component is displayed (in seconds).
number
default:"50"
Sets the maximum width for the toast component, as a percentage of the viewport size.
number
default:"80"
Sets the maximum width for the toast component, as a percentage of the viewport size, applied only when the viewport aspect ratio is portrait (i.e. smaller than 1). This override is useful because on a narrow screen the toast display typically needs more horizontal space than on a landscape screen.
boolean
default:"true"
Sets whether icon is displayed in toast component (
true or false).string
default:""
Sets asset value for toast icon. Icon asset must be included in
session_assets object.text
default:"🎉"
Sets an emoji to be rendered as the toast icon. If this string is non-empty, it will override
toast.icon.assetName. The string value must be an emoji.number
default:"3"
Sets the size of the toast icon, in grid units.
string
default:"rgba(15, 50, 110, 0.6)"
Sets the toast component’s background color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"rgba(0, 0, 30, 0.44)"
Sets the color of the stroke drawn around the text characters in the toast component. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"white"
Sets the toast component’s text color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"Roboto"
Sets the toast component’s font family. Valid options:
DMSans, Roboto, RobotoCondensed, Bitter, Exo, Magra, SuezOne, Tekonumber
default:"500"
Sets the font weight for the toast component’s text. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.number
default:"100"
Sets the font size for the toast component’s text.
number
default:"4"
Sets the number of seconds that the opening slate will be displayed when the stream starts. After this time, the slate goes away with a fade-out effect.
string
default:"Welcome"
Sets text displayed in the main title of the opening slate.
string
default:""
Sets text displayed in the subtitle (second line) of the opening slate.
string
default:""
Sets an image to be used as the background for the slate. This image asset must be included in
session_assets object when starting the stream/recording.string
default:"rgba(0, 0, 0, 1)"
Sets the slate’s background color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"rgba(255, 255, 255, 1)"
Sets the text color of the titles in the slate. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"Bitter"
Sets the font of the titles in the slate. Valid options:
DMSans, Roboto, RobotoCondensed, Anton, Bangers, Bitter, Exo, Magra, PermanentMarker, SuezOne, Tekostring
default:"500"
Selects a weight variant from the selected font family. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.string
default:""
Sets the font style for the titles in the slate. Valid options: ‘normal’,‘italic’.
number
default:"2.5"
Sets the main title font size using grid units (gu). By default, one grid unit is 1/36 of the smaller dimension of the viewport (e.g. 20px in a 1280*720 stream).
number
default:"75"
Sets the subtitle font size as a percentage of the main title.
string
default:"400"
Selects a weight variant from the selected font family specifically for the subtitle. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.boolean
default:"true"
Sets the slate to fade in or out when the
showTitleSlate property is updated.’string
default:"Title slate"
Sets text displayed in the main title of the slate.
string
default:"Subtitle"
Sets text displayed in the subtitle (second line) of the slate.
string
default:""
Sets an image to be used as the background for the slate. This image asset must be included in
session_assets object when starting the stream/recording.string
default:"rgba(0, 0, 0, 1)"
Sets the slate’s background color. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"rgba(255, 255, 255, 1)"
Sets the text color of the titles in the slate. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"Bitter"
Sets the font of the titles in the slate. Valid options:
DMSans, Roboto, RobotoCondensed, Anton, Bangers, Bitter, Exo, Magra, PermanentMarker, SuezOne, Tekostring
default:"500"
Selects a weight variant from the selected font family. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.string
default:""
Sets the font style for the titles in the slate. Valid options: ‘normal’,‘italic’.
number
default:"2.5"
Sets the main title font size using grid units (gu). By default, one grid unit is 1/36 of the smaller dimension of the viewport (e.g. 20px in a 1280*720 stream).
number
default:"75"
Sets the subtitle font size as a percentage of the main title.
string
default:"400"
Selects a weight variant from the selected font family specifically for the subtitle. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.boolean
default:"false"
Sets whether the sidebar is displayed on top of video elements. If set to
true , the video layout is shrunk horizontally to make room for the sidebar so they don’t overlap.string
default:"highlightLines.items"
Sets the data source for the text displayed in the sidebar. Valid options:
param, highlightLines.items, chatMessages, transcriptnumber
default:"1.5"
Padding inside the sidebar, specified in grid units.
number
default:"30"
Sets the width of the sidebar, as a percentage of the viewport size, applied when the viewport is landscape (its aspect ratio is greater than 1).
number
default:"25"
Sets the width of the sidebar, as a percentage of the viewport size, applied when the viewport is portrait or square (its aspect ratio is less than or equal to 1).
text
default:"rgba(0, 0, 50, 0.55)"
Sets the sidebar’s background color and opacity. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
text
default:"rgba(255, 255, 255, 0.94)"
Sets the sidebar’s text color and opacity. Valid options:
- Hex color codes
- RGB or RGBA syntax
- Standard CSS color names (e.g. ‘blue’)
string
default:"DMSans"
Sets the font of text displayed in the sidebar. Valid options:
DMSans, Roboto, RobotoCondensed, Anton, Bangers, Bitter, Exo, Magra, PermanentMarker, SuezOne, Tekostring
default:"300"
Sets the sidebar text font weight. Valid options:
100, 200, 300, 400, 500, 600, 700, 800, 900.Note: Not all font weights are valid for every font family.string
default:""
Sets the font style for text in the sidebar. Valid options: ‘normal’,‘italic’.
number
default:"1.4"
Sets the sidebar text font size using grid units (gu). By default, one grid unit is 1/36 of the smaller dimension of the viewport (e.g. 20px in a 1280*720 stream).
text
default:"rgba(255, 230, 0, 1)"
Sets the color used for the highlighted item in the sidebar.
string
default:"600"
Sets the font weight used for the highlighted item in the sidebar.
text
Sets a list of text items. Items must be separated by newline characters. This param is a data source that can be displayed in other components like TextOverlay, Banner and Sidebar using the various “source” params available in the settings for those components.
number
default:"0"
Sets the highlight index associated with the text items specified in
highlightLines.items. The item at this index will be displayed using a special highlight style (which depends on the component used to display this data). If you don’t want a highlight, set this value to -1.string
default:"emojiReactions"
Sets the data source used for emoji reactions. The default value
emojiReactions means that this component will display emojis that are sent via the standard source API.The other valid option is param, which lets you send a reaction using param values instead of the standard source. The steps are as follows: set emojiReactions.source to param, set a single-emoji string for emojiReactions.emoji, and increment the value of emojiReactions.key to send one emoji for display.number
default:"0"
If
emojiReactions.source is set to param, increment this numeric key to send a new emoji for display.text
default:""
If
emojiReactions.source is set to param, set a single emoji as the string value for this param, and it will be the next emoji reaction rendered when emojiReactions.key is incremented.number
default:"0"
Sets a horizontal offset applied to the emoji reactions animation rendering (each new emoji floats up from the bottom of the screen). Specified in grid units.
boolean
default:"false"
When set to true, a room state debugging display is visible. It prints various information about participant state.
number
default:"90"
Sets the opacity of the debugging display which can be toggled using
debug.showRoomState.Selecting participants
The baseline composition has several modes that display multiple participant videos. You may be wondering how to control which participants appear in specific places within those layouts. Internally, VCS uses an ordered array of video inputs that it calls “video input slots”. By default, that array will contain all participants in the order in which they joined the call. But there are two ways you can override this default behavior and choose which participants appear in your layout:- Participant selection on the room level using the
participantsproperty. - Input reordering on the composition level (a.k.a. switching) using the
preferredParticipantIdsandpreferScreenshareparams available in the baseline composition.
participants property lets you establish the participants whose streams will be available to the rendering. You can then do rapid switching within that selection using the preferredParticipantIds and preferScreenshare params in the baseline composition.
Here’s an example of selecting three specific participant video tracks, everyone’s audio tracks, and sorting the video by most recent active speaker:
'split'). This mode can only show two participants, so we use videoSettings.preferredParticipantIds to select the two participants in a clean frame-synchronized way, without having to modify the underlying connections made via the participants property:
participants properties
array
Required. An array of strings indicating which participant videos to make available to VCS. Possible values are:
-
["participant-guid-1", "participant-guid-2", "participant-guid-3"]: A list of specific participant IDs -
["*"]: everyone -
["owners"]: All call owners
array
An optional array of strings indicating which participant audio tracks to make available to VCS. Possible values are the same as the
video property.string
The only currently valid value for this property is
"active". This property controls the order in which VCS sees the participant video tracks. When set to "active", each time the call’s active speaker changes to a different participant, that participant will bubble up to the first position in the array. In other words, setting sort to "active" will cause an n-tile layout to always show the n most recent speakers in the call. If you leave the property unset, the list of participants will stay in a fixed order: either the order you specified in the video property, or in the order they joined the call if you use "*" or "owners".