Skip to main content
DailyStreamingOptions defines the base configuration accepted by startRecording(), updateRecording(), startLiveStreaming(), and updateLiveStreaming(). DailyLiveStreamingOptions extends DailyStreamingOptions with RTMP/HLS endpoint fields.

DailyStreamingOptions

Output quality

width
number
Output width in pixels. Must be even (a multiple of 2). Default: 1920.
height
number
Output height in pixels. Must be even (a multiple of 2). Default: 1080.
fps
number
Video frame rate. Default: 30.
videoBitrate
number
Video bitrate in kbps (10–10000). Resolution-based defaults: 1080p → 5000, 720p → 3000, 480p → 2000, 360p → 1000.
audioBitrate
number
Audio bitrate in kbps (10–320).
backgroundColor
string
Background color behind video tiles, as #rrggbb or #aarrggbb.

Session lifetime

instanceId
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.
minIdleTimeOut
number
Seconds to wait before automatically ending the session when the room is idle (all users have muted video and audio). Default: 300.
maxDuration
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

dataOutputs
string[]
Additional output artifacts to generate alongside the stream or recording. Supported values: "event-json", "transcript-webvtt", "chat-webvtt".
type
'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

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

Extends DailyStreamingOptions with endpoint configuration. Provide either rtmpUrl or endpoints — not both. HLS can only be started with endpoints.
rtmpUrl
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.
endpoints
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.

See also