Limited Availability - Do not share this document

This page has moved - you will be directed to the new location in 3 seconds. Please update your bookmarks!

Brightcove Live: Best Practices

This topic provides a guide to best practices for creating live streams using the Live API.

Overview

Brightcove Live provides a robust service for creating live streaming events or 24/7 live streams. This guide outlines best practices for optimizing your live streams

Input bandwidth

Providing a high-quality, stable input stream is the only way to ensure the best user experience for viewers. A good input stream provides the best video quality at the highest consistently available bandwidth from a location.

  • Minimum input bandwidth: 2.5 mbps
  • Maximum input bandwidth: 10 mbps

Supported encoders

See Supported Encoders for Live Events for list of encoders known to work with Live. Note that other encoders may also work, but have not been tested.

Supported CDNs

  • Akamai
  • Amazon CloudFront

Retries

We recommend enabling retries for the RTMP connection from the encoder. A large number of retry attempts with a 5-second retry interval will mitigate any intermittent connectivity issues between the encoder and the entry point.

Job settings

Recommended job settings

Job Settings
Field Recommended Value
ad_audio_loudness_level -23 (EBU R.128 standard)

Input requirements

The following table shows requirements for the input live stream.

Input Requirements
Item Requirement
Protocol rtmp, rpt, rtp-fec, or srt (all except rtmp are for MPEG2-TS inputs)[1-1]
Video format h.264
Audio format AAC
Maximum audio sampling rate up to 48000 Hz (Brightcove Support can increase this value on request)
Resolution Up to 1080p (width: 1920 pixels; height: 1080 pixels)
Bitrate Must be at least as high as the highest output bitrate - maximum: 10mbps.

In almost all cases, Brightcove Support has found that using Constant Bitrate for the input stream greatly reduces the chance of problems.

Framerate 30 fps (you can submit a Support request to have the limit raised to 60fps)
Slices If your encoder has this option, set it to 1

Notes

  • [1-1] If you have multiple video/audio tracks in your TS input, we will pick the first for each. We also strongly recommend using FEC, as plain TS over UDP over the internet is very unreliable. For FEC, we could note that the smaller the values you use for rows/columns, the more reliable the error correction will be (at the cost of increased bandwidth.

Slate source file recommendations

  • Resolution: (best in your encoding ladder)
  • FPS: (same as your source)
  • Bitrate: (best in your encoding ladder or better)
  • Audio: (same bitrate, channels, sampling frequency, and bits per sample as your best rendition, or same as your input)

Output recommendations

Below are recommended output settings, but note that for many encoders, the RTMP input is limited to 10 MBPS (video + audio) and a framerate of 30fps.

Output Recommendations
Item Recommendation
Video codec h264 is currently the only option
Audio codec aac is currently the only option
Width If no width or height is supplied, the source dimensions are used. If either width or height is supplied, the other dimension will be calculated to maintain the aspect ratio of the source.
Height If no width or height is supplied, the source dimensions are used. If either width or height is supplied, the other dimension will be calculated to maintain the aspect ratio of the source.
Bitrate Less than or equal to the input bitrate
Keyframe rate 2 seconds
AWS regions

See the Live API Overview.

FAQ

How soon do you have to start streaming after creating a live job?
In Brightcove Live, there are two conditions when the state transitions from waiting to finishing :
  1. if the job is in the waiting state (not yet started) and the max_waiting_time_ms has elapsed, the job is finished/deactivated.
  2. If the job is in the disconnected state (started, but disconnected) and the reconnect_time has elapsed, the job is finished/deactivated.

If the event_length is greater than 30 minutes, the job will terminate in 30 minutes. If the event_length is less than 30 minutes, the job will terminate in event_length .

For example, if the event_length is 60 minutes, then, the live job will terminate in 30 minutes. If the event_length is 15 minutes, then, the live job will terminate in 15 minutes

The reconnect_time has no effect for waiting state.

What are the limitations on concurrent live job_settings?

A maximum of 5 active waiting, unstarted jobs is allowed at any time.

Additional limitations on concurrent jobs:

  • The number of channel (24x7) jobs is limited to 0 or a low number per region (depending on the account type).
  • The number of concurrently running event jobs is limited by region, generally to 100.
  • The number of concurrently waiting to connect event jobs is limited to 5.
  • The number of SEP jobs per region is limited to 3 or 10 (see Supported AWS regions).

Any of these limits can be adjusted on an account level by Support. Contact your account manager if you need additional capacity.

Can Brightcove Live push 1080p quality provided the input bandwidth is sufficient?
Yes, 1080p input is enabled for all accounts.
Is DRM available?
Yes! Contact your account manager if you are interested in adding DRM support to your live account.