Live Event types comparison (REST)
Warning
Azure Media Services will be retired June 30th, 2024. For more information, see the AMS Retirement Guide.
In Azure Media Services, a Live Event can be set to either a pass-through (an on-premises live encoder sends a multiple bitrate stream) or live encoding (an on-premises live encoder sends a single bitrate stream).
This articles compares features of the live event types in the REST API. For use with SDKs, see the .Net, Node.JS or Python. Additionally, you can try the live event sample code.
Types comparison
The following table compares features of the Live Event types. The types are set during creation using LiveEventEncodingType:
- LiveEventEncodingType.PassthroughBasic: An on-premises live encoder sends a multiple bitrate stream. The basic pass-through is limited to a peak ingress of 5Mbps, up to 8-hour DVR window, and live transcription is not supported.
- LiveEventEncodingType.PassthroughStandard: An on-premises live encoder sends a multiple bitrate stream. The standard pass-through has higher ingest limits, up to 25-hour DVR window, and support for live transcriptions.
- 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 | Basic pass-through | Standard pass-through | Standard 720P or Premium 1080P Encoding Event |
---|---|---|---|
Single bitrate input is transcoded into multiple bitrates in the cloud | No | No | Yes |
Maximum video resolution for contribution feed | 4K (4096x2160 at 60 frames/sec) | 4K (4096x2160 at 60 frames/sec) | 1080p (1920x1088 at 30 frames/sec) |
Recommended maximum layers in contribution feed (within ingest bandwidth limits) | Limited to maximum aggregate bandwidth of 5 Mbps | Limited to maximum aggregate bandwidth of 60 Mbps | 1 video track and 1 audio (any additional tracks are silently dropped) track |
Maximum layers in output | Same as input | Same as input | Up to 6 (see System Presets below) |
Maximum aggregate bandwidth of contribution feed | Supports combined input up to 5 Mbps, individual bitrates not to exceed 4 Mbps. No video frame rate restriction. | Supports combined input up to 60 Mbps, individual bitrates not to exceed 20Mbps. No video frame rate restriction. | Supports single bitrate input. Individual input bandwidth cannot exceed 20Mbps. Video frame rate cannot exceed 60 frames/second. |
Maximum DVR (time shift) window duration allowed | up to 8 hours | up to 25 hours | up to 25 hours |
Maximum number of live outputs allowed | only 1 live output | up to 3 live outputs | up to 3 live outputs |
Maximum bitrate for a single layer in the contribution | Up to 4 Mbps | 20 Mbps | 20 Mbps |
Support for multiple language audio tracks | Yes | Yes | No |
Supported input video codecs | H.264/AVC (RTMP and Smooth), or H.265/HEVC (Smooth Streaming ingest only) | H.264/AVC (RTMP and Smooth), or H.265/HEVC (Smooth Streaming ingest only) | H.264/AVC (RTMP and Smooth Streaming ingest) |
Supported output video codecs | Same as input | Same as input | H.264/AVC |
Supported video bit depth, input, and output | Up to 10-bit including HDR 10/HLG | 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 | AAC-LC, HE-AAC v1, HE-AAC v2 |
Supported output audio codecs | Same as input | Same as input | AAC-LC |
Maximum video resolution of output video | Same as input | Same as input | Standard - 720p, Premium1080p - 1080p |
Maximum frame rate of input video | 60 frames/second | 60 frames/second | Standard or Premium1080p - 60 frames/second - transcoded output will be reduced to 23.98, 24, 25, 29.97, or 30 fps only depending on the source frame rate. |
Input protocols | RTMP, fragmented-MP4 (Smooth Streaming) | 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 | 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 | 24 hrs x 365 days, live linear (preview) |
Ability to pass through embedded CEA 608/708 captions data Available with HLS |
Yes | Yes | Yes |
Live transcription support | No. Live transcriptions are not supported for basic pass-through. | Yes | Yes |
Support for ad signaling via SCTE-35 in-band messages | Yes | Yes | Yes |
Support for non-uniform input GOPs | Yes | Yes | Yes duration |
Auto-shutoff of Live Event when input feed is lost | No | No | After 12 hours, if there is no LiveOutput running |
System presets
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.
Note
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 the source frame rate on input is >30 fps, the frame rate will be reduced to match half of the input frame rate. For example 60 fps would be reduced to 30fps. 50 fps would be reduced to 25 fps, etc.
Bitrate | Width | Height | MaxFPS | Profil |
---|---|---|---|---|
3500 | 1280 | 720 | 30 | Hoch |
2200 | 960 | 540 | 30 | Hoch |
1350 | 704 | 396 | 30 | Hoch |
850 | 512 | 288 | 30 | Hoch |
550 | 384 | 216 | 30 | Hoch |
200 | 340 | 192 | 30 | Hoch |
Note
If you need to customize the live encoding preset, please open a support ticket via Azure Portal. You should specify the desired table of video resolution/bitrates and audio bitrates. For video, verify that there is only one layer at 720p, and at most 6 layers for video. For audio, you can customize with the following discrete AAC audio bitrates (96k, 112k, 128k, 160k, 192k, 224k, 256k, 320k, 384k, 448k, 512k). Multiple audio tracks at different bitrates are allowed and can be included in the custom preset. Also please specify that you are requesting a custom preset in the support ticket.
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 the source frame rate on input is >30 fps, the frame rate will be reduced to match half of the input frame rate. For example 60 fps would be reduced to 30fps. 50 fps would be reduced to 25 fps, etc.
Bitrate | Width | Height | MaxFPS | Profil |
---|---|---|---|---|
5500 | 1920 | 1080 | 30 | Hoch |
3000 | 1280 | 720 | 30 | Hoch |
1600 | 960 | 540 | 30 | Hoch |
800 | 640 | 360 | 30 | Hoch |
400 | 480 | 270 | 30 | Hoch |
200 | 320 | 180 | 30 | Hoch |
Note
If you need to customize the live encoding preset, please open a support ticket via Azure Portal. You should specify the desired table of video resolution/bitrates and audio bitrates. Verify that there is only one layer at 1080p, and at most 6 layers. Also, specify that you are requesting a preset for a Premium1080p live encoder. For audio, you can customize with the following discrete AAC audio bitrates (96k, 112k, 128k, 160k, 192k, 224k, 256k, 320k, 384k, 448k, 512k). Multiple audio tracks at different bitrates are allowed and can be included in the custom preset. Also please specify that you are requesting a custom preset in the support ticket.
Output Audio Stream for Default720p and Default1080p
For both Default720p and Default1080p presets, audio is default encoded to stereo AAC-LC at 128 kbps. The sampling rate follows that of the audio track in the contribution feed.
Note
If the sampling rate is low, such as 8khz, the encoded output will be lower than 128kbps.
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, you are encouraged to 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.
Frame rate limits
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, you should 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.
If the source frame rate on input is >30 fps, the frame rate will be reduced to match half of the input frame rate. For example 60 fps would be reduced to 30fps. 50 fps would be reduced to 25 fps, etc.
Resolution of contribution feed and output layers
The live encoder is configured to avoid up-converting 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.
Get help and support
You can contact Media Services with questions or follow our updates by one of the following methods:
- Q & A
- Stack Overflow. Tag questions with
azure-media-services
. - @MSFTAzureMedia or use @AzureSupport to request support.
- Open a support ticket through the Azure portal.