Live stream best practices

Starting a live stream

  • When a stream is starting it might take up to 30 seconds for the playback to start delivering.
  • Before starting the stream, it is important to have an intro (static picture, countdown and etc) to the beginning of the stream that will allow users to connect before the stream starts.
  • In order to prevent the live stream from getting stuck (buffering indefinitely), please ensure that you are following the recommended settings.
  • Make sure to verify that the connection speed is adequate and stable before the stream is starting.

Ending the live stream

Make sure to use an outro (static picture, music and etc.) at the end of the stream for 30 seconds. This is a good way for users to indicate that the stream has ended.

When reaching the end of the playback, the player buffers until the live stream is deleted, which could take from 10 seconds to 5 minutes and could cause the live stream not to end properly even if you have stopped the broadcast.

Connectivity loss reconnection

Reconnection is handled by api.video, however, an edge case might occur (very slim chance), which will result in the inability to reconnect to the stream with good quality. In this case, we recommend creating a manual stream reconnection, where the streamer will create a new streaming key while the consumers will have to refresh their player instance.

Reading stream history

While the stream is live, the user can watch the stream for up to 6 hours in the past.

As soon as the stream ends, we will store the stream for another 4-5 minutes subsequently ending the stream and disposing of the cached video.

Recommended setting for ingestion

Video codec: H.264
Audio codec: AAC/MP3
Bitrate encoding: CBR
Keyframe Interval: 2 second

Quality Framerate Video bitrate Audio sample rate Audio Bitrate
240p 25-30 fps 300-700 Kbps 44,1 kHz 64 Kbps
360p 25-30 fps 400-1000 Kbps 44,1 kHz 128 Kbps
480p 25-30 fps 500-2000 Kbps 44,1 kHz 128 Kbps
720p (30 fps) 25-30 fps 1500-4000 Kbps 44,1 kHz 128 Kbps
720p (60 fps) 60 fps 2250-6000 Kbps 44,1 kHz 128 Kbps
1080p (30 fps) 25-30 fps 3000-6000 Kbps 44,1 kHz 128 Kbps
1080p (60 fps) 60 fps 4500-9000 Kbps 44,1 kHz 128 Kbps
2160(4K) (30 fps) 25-30 fps 13000-34000 Kbps 44,1 kHz 192 Kbps
2160(4K) (60 fps) 60 fps 20000-51000 Kbps 44,1 kHz 192 Kbps

Limitations

  • When using the sandbox environment, live streaming is limited to 24 hours.
  • The video codec must be H.264
  • The audio codec must be AAC or MP3
  • DVR is exactly 6 hours
  • During a disconnection on ingest side, re-connection must occur within 10 seconds
  • When creating a new live event using the same streamID without keeping the DVR of a previous live, you must wait at least 5 minutes before re-using it

Was this page helpful?