Skip to main content
Paid plans only startLiveStreaming(options) Starts an RTMP or HLS live stream. Requires the initiating participant to be an owner or streaming admin (a participant with 'streaming' in their canAdmin permission). The number of concurrent streams is subject to your domain’s max_live_streams limit. Contact us to configure max_streaming_instances_per_room for your domain.

Parameters

options: DailyLiveStreamingOptions Accepts all fields from DailyStreamingOptions plus the following live-streaming-specific fields:
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 ({ endpoint: string }). Supports both RTMP and HLS. Only one HLS endpoint can be provided. Preferred over rtmpUrl.
Provide either rtmpUrl or endpoints — not both. HLS can only be started via endpoints.
See DailyStreamingOptions for all shared options: output quality (width, height, fps, videoBitrate, audioBitrate, backgroundColor), session lifetime (instanceId, minIdleTimeOut, maxDuration), output artifacts (dataOutputs), and layout.

Return value

Returns void. Listen for live-streaming-started to confirm the stream is active.

Example

await call.startLiveStreaming({
  endpoints: [{ endpoint: 'rtmps://live.example.com/stream/YOUR_STREAM_KEY' }],
  width: 1280,
  height: 720,
  fps: 25,
  videoBitrate: 2500,
  layout: {
    preset: 'default',
    max_cam_streams: 5,
  },
});

See also