Low Latency HLS (LL-HLS)
Warning
Azure Media Services will be retired June 30th, 2024. For more information, see the AMS Retirement Guide.
Media Services support Apple's Low Latency HLS (LL-HLS) specification. This article describes Media Services support for LL-HLS and provides you with implementation guidance.
Note
At this time, we do not support LL-DASH.
LowLatency and LowLatencyV2 options
Media Services support low latency live streaming using LL-HLS for Standard Encoding Live Events and Premium Encoding Live Events. When creating a new encoding live event, you must choose StreamOptions.LowLatencyV2 when using the API, or the "Low latency" option using the Azure portal. With this option, you have certain limitations compared to the other stream options.
- Only RTMP input is supported at this time.
- Smooth output is not supported.
- You can still use DASH output and gain benefits of a much lower latency compared to other stream options. However LL-DASH is not supported.
- A smaller seekback window during live playback is recommended. By default we set a 30 minute seekback window.
- We can only archive up to 6 hours of live content.
- Fairplay support is limited.
How to use LL-HLS
Use LowLatencyV2 in the Azure portal
- Set up your on-premises stream. Try the OBS tutorial if you haven't done this before.
- While creating a live event, select either Standard encoding (up to 720p) or Premium encoding (up to 1080p) under the live event type. The Stream latency options will appear.
- Select the Low latency radio button. LowLatencyV2 will automatically be selected for the encoding standard you chose.
- Optionally select the Start preparing live event for input checkbox to automatically start the live event. Remember that billing starts as soon as a live event is started.
- Set any other options you want for the live event then select Review and create. The live event screen will appear with a listing of the streaming URLs.
- Copy the HLS URL for use with the player.
LL-HLS SDK Samples
There are detailed instructions in the comments of the sample code provided for LL-HLS.
See dynamic packaging page for more information on streaming URL formats.
Player testing
We recommend that you use players that support LL-HLS and configure the players appropriately for best results.
We have tested with the latest version of the following players:
- Shaka 4.3.2
- Video.JS 7.21.1 with support for LL-HLS
- ExoPlayer
When using DASH output with Azure Media Player, configure the player with the following option: heuristicprofile: LowLatency
.
Output formats
For LL-HLS outputs use the format string: (format=m3u8-cmaf). For example:
https://accountName-region.streaming.media.chinacloudapi.cn/11111111-1111-43ce-9dba-3aee82e35262/output.ism/manifest(format=m3u8-cmaf).m3u8
When using DASH output use the format string: (format=mpd-time-cmaf)
Note
The end-to-end latency can vary depending on local network conditions. You should test your exact configurations.