Live Event types comparison
In Azure Media Services, a Live Event can be one of two types: live encoding and pass-through.
The following table compares features of the Live Event types. The types are set during creation using LiveEventEncodingType:
- LiveEventEncodingType.None - An on-premises live encoder sends a multiple bitrate stream. The ingested streams passes through the Live Event without any further processing.
- LiveEventEncodingType.Standard - An on-premises live encoder sends a single bitrate stream to the Live Event and Media Services creates multiple bitrate streams. If the contribution feed is of 720p or higher resolution, the Default720p preset will encode a set of 6 resolution/bitrate pairs (details follow later in the article).
- LiveEventEncodingType.Premium1080p - An on-premises live encoder sends a single bitrate stream to the Live Event and Media Services creates multiple bitrate streams. The Default1080p preset specifies the output set of resolution/bitrate pairs (details follow later in the article).
|Feature||Pass-through Live Event||Standard or Premium1080p Live Event|
|Single bitrate input is encoded into multiple bitrates in the cloud||No||Yes|
|Maximum video resolution for contribution feed||4K (4096x2160 at 60 frames/sec)||1080p (1920x1088 at 30 frames/sec)|
|Recommended maximum layers in contribution feed||Up to 12||One audio|
|Maximum layers in output||Same as input||Up to 6 (see System Presets below)|
|Maximum aggregate bandwidth of contribution feed||60 Mbps||N/A|
|Maximum bitrate for a single layer in the contribution||20 Mbps||20 Mbps|
|Support for multiple language audio tracks||Yes||No|
|Supported input video codecs||H.264/AVC and H.265/HEVC||H.264/AVC|
|Supported output video codecs||Same as input||H.264/AVC|
|Supported video bit depth, input, and output||Up to 10-bit including HDR 10/HLG||8-bit|
|Supported input audio codecs||AAC-LC, HE-AAC v1, HE-AAC v2||AAC-LC, HE-AAC v1, HE-AAC v2|
|Supported output audio codecs||Same as input||AAC-LC|
|Maximum video resolution of output video||Same as input||Standard - 720p, Premium1080p - 1080p|
|Maximum frame rate of input video||60 frames/second||Standard or Premium1080p - 30 frames/second|
|Input protocols||RTMP, fragmented-MP4 (Smooth Streaming)||RTMP, fragmented-MP4 (Smooth Streaming)|
|Price||See the pricing page and click on "Live Video" tab||See the pricing page and click on "Live Video" tab|
|Maximum run time||24 hrs x 365 days, live linear||24 hrs x 365 days, live linear (preview)|
|Ability to pass through embedded CEA 608/708 captions data||Yes||Yes|
|Support for inserting slates||No||No|
|Support for ad signaling via API||No||No|
|Support for ad signaling via SCTE-35 in-band messages||Yes||Yes|
|Ability to recover from brief stalls in contribution feed||Yes||Partial|
|Support for non-uniform input GOPs||Yes||No – input must have fixed GOP duration|
|Support for variable frame rate input||Yes||No – input must be fixed frame rate. Minor variations are tolerated, for example, during high motion scenes. But the contribution feed cannot drop the frame rate (for example, to 15 frames/second).|
|Auto-shutoff of Live Event when input feed is lost||No||After 12 hours, if there is no LiveOutput running|
The resolutions and bitrates contained in the output from the live encoder are determined by the presetName. If using a Standard live encoder (LiveEventEncodingType.Standard), then the Default720p preset specifies a set of 6 resolution/bitrate pairs described below. Otherwise, if using a Premium1080p live encoder (LiveEventEncodingType.Premium1080p), then the Default1080p preset specifies the output set of resolution/bitrate pairs.
You cannot apply the Default1080p preset to a Live Event if it has been setup for Standard live encoding - you will get an error. You will also get an error if you try to apply the Default720p preset to a Premium1080p live encoder.
Output Video Streams for Default720p
If the contribution feed is of 720p or higher resolution, the Default720p preset will encode the feed into the following 6 layers. In the table below, Bitrate is in kbps, MaxFPS represents that maximum allowed frame rate (in frames/second), Profile represents the H.264 Profile used.
If you need to customize the live encoding preset, please open a support ticket via Azure Portal. You should specify the desired table of resolution and bitrates. Do verify that there is only one layer at 720p, and at most 6 layers. Also do specify that you are requesting a preset for a Standard live encoder. The specific values of the bitrates and resolutions may be adjusted over time
Output Video Streams for Default1080p
If the contribution feed is of 1080p resolution, the Default1080p preset will encode the feed into the following 6 layers.
If you need to customize the live encoding preset, please open a support ticket via Azure Portal. You should specify the desired table of resolution and bitrates. Do verify that there is only one layer at 1080p, and at most 6 layers. Also do specify that you are requesting a preset for a Premium1080p live encoder. The specific values of the bitrates and resolutions may be adjusted over time.
Output Audio Stream for Default720p and Default1080p
For both Default720p and Default1080p presets, audio is encoded to stereo AAC-LC at 128 kbps. The sampling rate follows that of the audio track in the contribution feed.
Implicit properties of the live encoder
The previous section describes the properties of the live encoder that can be controlled explicitly, via the preset - such as the number of layers, resolutions, and bitrates. This section clarifies the implicit properties.
Group of pictures (GOP) duration
The live encoder follows the GOP structure of the contribution feed - which means the output layers will have the same GOP duration. Hence, it is recommended that you configure the on-premises encoder to produce a contribution feed that has fixed GOP duration (typically 2 seconds). This will ensure that the outgoing HLS and MPEG DASH streams from the service also has fixed GOP durations. Small variations in GOP durations are likely to be tolerated by most devices.
The live encoder also follows the durations of the individual video frames in the contribution feed - which means the output layers will have frames with the same durations. Hence, it is recommended that you configure the on-premises encoder to produce a contribution feed that has fixed frame rate (at most 30 frames/second). This will ensure that the outgoing HLS and MPEG DASH streams from the service also has fixed frame rates durations. Small variations in frame rates may be tolerated by most devices, but there is no guarantee that the live encoder will produce an output that will play correctly. Your on-premises live encoder should not be dropping frames (eg. under low battery conditions) or varying the frame rate in any way.
Resolution of contribution feed and output layers
The live encoder is configured to avoid upconverting the contribution feed. As a result the maximum resolution of the output layers will not exceed that of the contribution feed.
For example, if you send a contribution feed at 720p to a Live Event configured for Default1080p live encoding, the output will only have 5 layers, starting with 720p at 3Mbps, going down to 1080p at 200 kbps. Or if you send a contribution feed at 360p into a Live Event configured for Standard live encoding, the output will contain 3 layers (at resolutions of 288p, 216p, and 192p). In the degenerate case, if you send a contribution feed of, say, 160x90 pixels to a Standard live encoder, the output will contain one layer at 160x90 resolution at the same bitrate as that of the contribution feed.
Bitrate of contribution feed and output layers
The live encoder is configured to honor the bitrate settings in the preset, irrespective of the bitrate of the contribution feed. As a result the bitrate of the output layers may exceed that of the contribution feed. For example, if you send in a contribution feed at a resolution of 720p at 1 Mbps, the output layers will remain the same as in the table above.