We can enable live streaming for your Daily.co domain. Each domain has a max_live_streams property that limits the number of simultaneous live streams you can, uh, stream. Please contact us if you'd like us to set your account up for live streaming.

We currently are not charging for the costs of live streaming itself. (Please note to turn on live streaming requires a Scale upgrade.)

Currently, we have not placed a hard limit on the number of participant camera and microphone tracks that we attempt to composite into the live stream. We strongly recommend that for now you limit use to 6 cameras and 6 microphones. Above 6 simultaneous cams+mics, performance degrades to the point where we start to see missed keyframes and other video and audio issues.

In the future, we will set a hard limit on the number of camera and microphone tracks that are composited.

A single screen share is supported. When a screen share starts, the video layout changes to display the screen share full screen, with camera tracks overlayed across the top edge.

Please note that you need to use the latest version of the daily-js library: 0.9.992

<!-- load in a script tag or bundle into your build, as usual -->
<script src="<https://unpkg.com/@daily-co/[email protected]>"></script>

To start a live stream, call the startLiveStreaming() method:

callObject.startLiveStreaming({ rtmpUrl: 'rtmp: ...' })

A client must be a meeting owner to start a live stream. The stream will continue to operate until all clients leave the room, or the stopLiveStreaming() method is called and succeeds.

To stop a live stream, call the stopLiveStreaming() method. Again, a client must be a meeting owner to stop the live stream.

You can install handlers for three live stream events:

live-streaming-started
live-streaming-error
live-streaming-stopped

In the case of an error, we try to supply information about what went wrong. For example:

{
  action: "live-streaming-error"
  errorMsg: "must be meeting owner to start live stream"
}

Please note, however, that we don't always know very much useful information about a stream failure.

A live stream can fail shortly after startup, if we are able to start the encoding process but cannot communicate with the rtmp endpoint we're sending to. In that case, you will get a live-streaming-started event, followed a few seconds later by a live-streaming-error event.

A stream can also fail at any time, because of network, infrastructure, or software issues. We recommend that if you get an unexpected live streaming error, wait 15 seconds and then try to restart the stream.