Transcoding/ABR Provision Suggestions
The following are some suggested tiered provisions based on ingest quality. When creating your ABR provisions, keep in mind the following:
-
The highest level provision needs to match the resolution, bitrate and framerate of your incoming stream. The transcoder does not modify the
level 1
stream. -
For the smoothest ABR experience, comparative bitrates of adjacent levels should be within 50% or less.
- For example, if your incoming bitrate is 2,000 kbps, then the 2nd level should be 1,000 kbps or higher.
-
For HD-quality streams, we suggest 4 or more tiers, depending on your subscriber targets.
-
Transcoding is very CPU-heavy, so you’ll want to use a larger VM size for:
- high resolution ingest
- high framerate ingest
- high bitrate ingest
- additional provision tiers
For example, a 4K 10,000 kbps, 60fps stream transcoded into 5 additional levels will use significantly more CPU than a 720p 2,500kbps 30fps stream transcoded into 2 additional levels. We suggest at least 8 CPUs for the 4K transcoding, and one transcoder per incoming stream if you have multiple 4K ingests. For 720p, a 4-CPU VM should support several streams.
The following provision examples have been added to the Stream Manager Postman API
Provision Suggestions by Quality
720p Publisher
720p Three Levels
Source stream:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 3,000 kbps
- videoFPS: 30 fps
Level 2:
- videoHeight: 540
- videoWidth: 960
- videoBR: 2,0000 kbps
- videoFPS: 30 fps
Level 3:
- videoHeight: 360
- videoWidth: 640
- videoBR: 1,000 kbps
- videoFPS: 30 fps
720p Four Levels
Source stream:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 4,000 kbps
- videoFPS: 30 fps
Level 2:
- videoHeight: 540
- videoWidth: 960
- videoBR: 2,000 kbps
- videoFPS: 30 fps
Level 3:
- videoHeight: 360
- videoWidth: 640
- videoBR: 1,000 kbps
- videoFPS: 30 fps
Level 4:
- videoHeight: 180
- videoWidth: 320
- videoBR: 600 kbps
- videoFPS: 15 fps
1080p Publisher
1080p Three Levels
Source stream:
- videoHeight: 1080
- videoWidth: 1920
- videoBR: 4,000 kbps
- videoFPS: 30 fps
Level 2:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 2,000 kbps
- videoFPS: 30 fps
Level 3:
- videoHeight: 360
- videoWidth: 640
- videoBR: 1,000 kbps
- videoFPS: 30 fps
1080p Four Levels
Source stream:
- videoHeight: 1080
- videoWidth: 1920
- videoBR: 5,0000 kbps
- videoFPS: 30 fps
Level 2:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 3,000 kbps
- videoFPS: 30 fps
Level 3:
- videoHeight: 540
- videoWidth: 960
- videoBR: 2,000 kbps
- videoFPS: 30 fps
Level 4:
- videoHeight: 360
- videoWidth: 640
- videoBR: 1,000
- videoFPS: 30 fps
1440p Publisher
1440p Five Levels
Source stream:
- videoHeight: 1440
- videoWidth: 2048
- videoBR: 6,000 kbps
- videoFPS: 30 fps
Level 2:
- videoHeight: 1080
- videoWidth: 1920
- videoBR: 4,000 kbps
- videoFPS: 30 fps
Level 3:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 3,000 kbps
- videoFPS: 30 fps
Level 4:
- videoHeight: 540
- videoWidth: 960
- videoBR: 2,000
- videoFPS: 30 fps
Level 5:
- videoHeight: 360
- videoWidth: 640
- videoBR: 1,000
- videoFPS: 30 fps
4K Publisher
4K Five Levels
Source stream:
- videoHeight: 2160
- videoWidth: 3840
- videoBR: 10,000 kbps
- videoFPS: 60 fps
Level 2:
- videoHeight: 1440
- videoWidth: 2048
- videoBR: 6,000 kbps
- videoFPS: 60 fps
Level 3:
- videoHeight: 1080
- videoWidth: 1920
- videoBR: 4,000 kbps
- videoFPS: 30 fps
Level 4:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 2,500 kbps
- videoFPS: 30 fps
Level 5:
- videoHeight: 540
- videoWidth: 960
- videoBR: 1,500 kbps
- videoFPS: 30 fps
4K Six Levels
Source stream:
- videoHeight: 2160
- videoWidth: 3840
- videoBR: 10,000 kbps
- videoFPS: 60 fps
Level 2:
- videoHeight: 1440
- videoWidth: 2048
- videoBR: 6,000 kbps
- videoFPS: 60 fps
Level 3:
- videoHeight: 1080
- videoWidth: 1920
- videoBR: 4,000 kbps
- videoFPS: 30 fps
Level 4:
- videoHeight: 720
- videoWidth: 1280
- videoBR: 2,500 kbps
- videoFPS: 30 fps
Level 5:
- videoHeight: 540
- videoWidth: 960
- videoBR: 1,500 kbps
- videoFPS: 30 fps
Level 6:
- videoHeight: 360
- videoWidth: 640
- videoBR: 1,000 kbps
- videoFPS: 30 fps
Additional Considerations
Most of the above suggestions are geared towards high-motion streams (like a sports event). Mostly static streams (like a lecture) will not maintain the higher bitrates. If the incoming stream’s bitrate doesn’t match, or come close, to the level set for that provision, then the lower-tiered provisions may not be able to be sustained. This will affect any ABR potential.
For example, if you were to use the 720p publisher 3-level suggested provisions, but your incoming stream was only coming in at 1,500kbps instead of 3,000 kbps, then the second and third levels cannot match the provisioned 2,000 kbps and 1,000 kbps, and you will not see adaptive bitrate working as you expect.