Brightcove Live: Best Practices
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
Field | Recommended Value |
---|---|
ad_audio_loudness_level |
-23 (EBU R.128 standard) |
Input requirements
The following table shows requirements for the input live stream.
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.
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 |
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
tofinishing
:- if the job is in the waiting state (not yet started) and the
max_waiting_time_ms
has elapsed, the job is finished/deactivated. - 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 theevent_length
is less than 30 minutes, the job will terminate inevent_length
.For example, if the
event_length
is 60 minutes, then, the live job will terminate in 30 minutes. If theevent_length
is 15 minutes, then, the live job will terminate in 15 minutesThe
reconnect_time
has no effect for waiting state. - if the job is in the waiting state (not yet started) and the
- 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.
- The number of
- 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.