How Low latency HLS improve User Experience in Video Streaming and OTT

on 30 October 2020 ABR-Streaming, Apple HTTP Live Streaming, AZURE, CLOUD, DEVOPS, HLS, JMETER, LOAD_TESTING, OTT, PERFORMANCE, SMOOTH Streaming, VIDEO and Tags: , , , , , , , with 0 comments

What is latency ?

The latency is the time elapsed between capturing and playing the video. In other words, for live video, latency is a delay in comparison to real-time. Standard latency values are between 30s and 60s.

Thanks to Low-Latency HLS we can achieve a latency of 2 seconds or less.

Advantages of Low Latency

In LL-HLS, the aim is to have a latency of about two seconds. It is really close to real time. This is a necessity for many use cases.

Let’s say you are watching a sport or any other entertainment event, you do not want your neighbour to spoil the outcome, which will be the case with a higher latency.

Another example, if you are watching a video and there is a live chat, you need low latency, otherwise the reply might not make sense.

Low latency is also necessary for :

  • gambling
  • live auctions
  • betting
  • gaming

How to achieve Low Latency with LL-HLS

Low-Latency HLS introduces new tags.

Functionalities supported by server

First of all, the server will be able to indicate which low-latency features it supports:

  • EXT-X-SERVER-CONTROL is mandatory in Low-Latency. It allows the server to indicate which of LL-HLS functionalities it is compatible with.
    • CAN-BLOCK-RELOAD=YES means the server can block a playlist reload until a specified resource is available. It is mandatory in Low-Latency. The client specifies this resource with query parameters _HLS_msn and _HLS_part.
    • CAN-SKIP-UNTIL means that the server can skip a part of the playlist if it is requested by the client. It reduces the size of the playlist. This one is optional.
    • PART-HOLD-BACK is the minimum distance from the end of the playlist. A client can play a segment if it is at this distance. It is mandatory if the playlist contains partial segments, which is the case in low latency.

Partial segments

Next, in Low-Latency HLS, there are partial segments. Those are much shorter than regular media segments. Hence, they are added earlier in the playlist. The tags for partial segments are :

  • EXT-X-PART-INF gives info on partial segments. It is mandatory if any are present in the playlist.
  • EXT-X-PART identifies a partial segment
partial segment

Preload

Moreover, the server can inform the client that a segment is available for request and soon for delivery. So, the client can request this segment earlier. The tag used by server is :

  • EXT-X-PRELOAD-HINT gives information about next available resource. The client can ask for this resource, and the server will provide it once it is available.

Delta update

Also, the client can ask for a playlist delta update. This allows to get only last part of the playlist. This can be used by the client if it already has the playlist and only wants to get new segments. The older segments are replaced by a new tag :

  • EXT-X-SKIP is there to replace ignored segments in case of delta updates. Only if client asked playlist delta update. In other words, reload playlist with query parameter _HLS_skip=YES
delta update low latency

Other renditions

Finally, there is a new tag to switch renditions faster :

  • EXT-X-RENDITION-REPORT gives info about other renditions.

About UbikLoadPack :

Ubik Load Pack Streaming Solution features

You’ll probably also like: