DailyStreamingOptions defines the base configuration accepted by startRecording(), updateRecording(), startLiveStreaming(), and updateLiveStreaming().
DailyLiveStreamingOptions extends DailyStreamingOptions with RTMP/HLS endpoint fields.
DailyStreamingOptions
Output quality
number
Output width in pixels. Must be even (a multiple of 2). Default:
1920.number
Output height in pixels. Must be even (a multiple of 2). Default:
1080.number
Video frame rate. Default:
30.number
Video bitrate in kbps (10–10000). Resolution-based defaults: 1080p → 5000, 720p → 3000, 480p → 2000, 360p → 1000.
number
Audio bitrate in kbps (10–320).
string
Background color behind video tiles, as
#rrggbb or #aarrggbb.Session lifetime
string
A UUID identifying this recording or streaming session. Multiple sessions can run concurrently (up to
max_streaming_instances_per_room on your domain) if each has a unique instanceId.Recording and streaming sessions that share the same instanceId share the same underlying composition process — layout changes to one affect the other. HLS cannot share an instanceId with a recording or RTMP stream.number
Seconds to wait before automatically ending the session when the room is idle (all users have muted video and audio). Default:
300.number
Maximum session duration in seconds after which recording/streaming is forcefully stopped. Default:
10800 (3 hours) for recordings, 86400 (24 hours) for live streams.Output artifacts
string[]
Additional output artifacts to generate alongside the stream or recording. Supported values:
"event-json", "transcript-webvtt", "chat-webvtt".'cloud' | 'cloud-audio-only' | 'raw-tracks' | 'local'
Specifies the recording type to start. Recording only — not applicable to live streaming. The type provided must also be enabled for the room or domain with the enable_recording property; see Update room.
'cloud'(default) — cloud recording with video composition'cloud-audio-only'— cloud recording, audio only'raw-tracks'— individual raw audio/video tracks, uncomposed'local'— local browser recording
Layout
DailyStreamingLayoutConfig
Controls how participant video is composed. See
DailyStreamingLayoutConfig for all presets and options.For live streaming, the audio-only preset is not available — use DailyLiveStreamingLayoutConfig (which excludes it).DailyLiveStreamingOptions
ExtendsDailyStreamingOptions with endpoint configuration. Provide either rtmpUrl or endpoints — not both. HLS can only be started with endpoints.
string | string[]
One or more RTMP destination URLs. When multiple URLs are provided, each receives the same layout. Avoid using this field if your URL contains sensitive values (stream keys, etc.) — use
endpoints instead.DailyStreamingEndpoint[]
Array of endpoint objects, each with an
endpoint string field containing the RTMP or HLS destination URL. Preferred over rtmpUrl as it keeps sensitive values out of method call arguments.