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

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

Extends DailyStreamingOptions 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.

See also