DailyStreamingOptions defines the base configuration accepted by startRecording(), updateRecording(), startLiveStreaming(), and updateLiveStreaming().
DailyLiveStreamingOptions extends DailyStreamingOptions with RTMP/HLS endpoint fields.
DailyStreamingOptions
Output quality
Output width in pixels. Must be even (a multiple of 2). Default:
1920.Output height in pixels. Must be even (a multiple of 2). Default:
1080.Video frame rate. Default:
30.Video bitrate in kbps (10–10000). Resolution-based defaults: 1080p → 5000, 720p → 3000, 480p → 2000, 360p → 1000.
Audio bitrate in kbps (10–320).
Background color behind video tiles, as
#rrggbb or #aarrggbb.Session lifetime
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.Seconds to wait before automatically ending the session when the room is idle (all users have muted video and audio). Default:
300.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
Additional output artifacts to generate alongside the stream or recording. Supported values:
"event-json", "transcript-webvtt", "chat-webvtt".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
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.
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.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.