All Products
Search
Document Center

ApsaraVideo Live:Live streaming latency

Last Updated:Apr 16, 2024

This topic describes the causes that lead to live streaming latency and how to reduce the latency.

Causes that lead to live streaming latency

Stream ingest client

  • A Group of Pictures (GOP) is a collection of keyframes in a video stream and is the basic unit for video encoding and decoding. During live streaming, each frame of data is timestamped and transmitted over networks. A large number of keyframes in a video stream causes live streaming latency.

  • Most third-party stream ingest software increases the encoding cache size to prevent playback stuttering. However, a large cache size causes live streaming latency.

  • The encoding hardware cannot meet the requirements of the specified bitrate, frame rate, or encoding profile. This causes encoding latency and impedes smooth streaming.

Server

Before the delivery of a live stream, the server caches a specific amount of streaming data so that the live stream can be instantly loaded and stuttering can be reduced. This ensures the smoothness of live streaming. However, caching data leads to live streaming latency to some extent. During the delivery of a live stream, the data may not be transmitted to the client in real time due to network jitters. This also causes a latency of 2 to 3 seconds.

Streaming client

Most streaming clients that do not support fast forwarding decode and play a live stream only when the cache is full. The caching process causes live streaming latency.

Reduce live streaming latency

You can reduce live streaming latency by using the following methods:

  • Stream ingest configuration

    • Set the GOP size to 1 to 2 seconds to reduce the time required by a player to load a GOP. This reduces live streaming latency. For more information about how to set the GOP size by using the ApsaraVideo Live console, see Configure custom transcoding. For more information about how to set the GOP size by calling an API operation, see AddCustomLiveStreamTranscode.

    • To reduce live streaming latency that is caused by a large encoding cache size, we recommend that you use Alibaba Cloud Push SDK.

    • On iOS devices that are used for stream ingest, we recommend that you use hardware encoding because it is efficient and power-saving. The performance of Android devices that are used for stream ingest varies with the device type and CPU type, and hardware coding may cause compatibility issues. Therefore, we recommend that you use software encoding on Android devices.

  • Server configuration

    Decrease the cache size to reduce live streaming latency. You can configure the latency based on the streaming protocol by using the ApsaraVideo Live console. Lower latency indicates smaller cache size.

    1. Log on to the ApsaraVideo Live console.

    2. In the left-side navigation pane, click Domains. The Domain Management page appears.

    3. Find the streaming domain name that you want to configure and click Domain Settings in the Actions column.

    4. In the left-side navigation tree, choose Templates > Latency Settings.

    1

    Note

    After the cache size is decreased, data may fail to be downloaded in a timely manner if the network connection is unstable. In this case, stuttering occurs during live streaming.

  • Streaming protocol

    ApsaraVideo Live supports the following streaming protocols: HTTP Flash Video (HTTP-FLV), HTTP Live Streaming (HLS), and Real-Time Messaging Protocol (RTMP). You can select the appropriate protocol based on your live streaming scenario.

    • HTTP-FLV and RTMP have low latency and are suitable for live streaming scenarios that require low latency. HLS has relatively high latency but is compatible with a wide range of devices. It is suitable for live streaming scenarios that are not sensitive to latency and in which a large number of devices are playing the live stream.

    • HTTP-FLV and RTMP require Flash Player, whereas HLS video streams can be directly played in a browser.

    • You must use HLS if users play your live stream in mobile browsers.

    Note

    If your streaming client uses HLS, a latency of 10 to 30 seconds is normal. To reduce the latency, you can change HLS to HTTP-FLV.

    The following table describes the differences among HTTP-FLV, HLS, and RTMP.

    Streaming protocol

    Description

    Transmission protocol

    Container format

    Applicable live streaming scenario

    HTTP-FLV

    Introduced by Adobe, HTTP-FLV encapsulates streaming data into the FLV format and transmits the data to clients by using the HTTP protocol. The latency is about 2 seconds. HTTP-FLV supports encrypted transmission by using HTTPS. HTTP-FLV is supported on both Android and iOS devices.

    HTTP

    FLV and TAG

    Live streaming with a reduced latency

    HLS

    Introduced by Apple, HLS is a media streaming protocol based on HTTP. HLS divides a live stream into consecutive TS segments. The length of each segment is more than 5 seconds. Typically, the playback starts after 3 to 4 segments are cached. Therefore, the total latency of HLS live streaming is about 10 to 30 seconds while keeping smooth playback. The HLS protocol applies to iOS devices and is used to provide services such as audio and video streaming and recording.

    HTTP

    M3U8 and TS

    Live streaming across multiple devices

    RTMP

    Introduced by Adobe, RTMP splits messages to small chunks during transmission. RTMP transmits the chunks to the receiver by using Transmission Control Protocol (TCP). Then, the receiver decodes the chunks to obtain the streaming data. Splitting a large file is complex, which may lead to instability. For iOS, a third-party decoder is required to play an RTMP stream.

    HTTP

    FLV and TAG

    Interactive live streaming

Real-Time Streaming (RTS)

If you still feel unsatisfied about the latency after you take the preceding measures, you can use Real-Time Streaming (RTS). Compared with conventional live streaming that has a latency of 3 to 6 seconds, RTS supports tens of millions of concurrent playbacks at a latency of milliseconds. RTS is suitable for large-scale interactive live streaming events. You can use RTS to provide live streaming experience that features low latency, stuttering-free, and instant loading.

  • RTS pricing

    The pricing of RTS is different from that of standard streaming. For more information, see Pricing.

  • Activate RTS

    For information about how to activate and use RTS, see Overview.