All Products
Search
Document Center

ApsaraVideo Live:Get started with RTS

Last Updated:Aug 26, 2024

With the rapid development of the live streaming industry, the requirements on latency are becoming increasingly stringent. ApsaraVideo Live provides the Real-Time Streaming (RTS) feature to reduce the live streaming latency, which improves user experience. RTS reduces the latency to milliseconds, compared with 3 to 6 seconds of standard streaming. RTS also provides stronger resistance to packet loss. It is suitable for scenarios that require ultra-low latency and high interactivity, such as e-commerce live streaming, online education, live events, and live shows. This topic describes how to implement RTS.

Prerequisites

  • An ingest domain and a streaming domain are available. Internet content provider (ICP) filing for the domain names is complete.

    Note
    • If you are in a live center outside the Chinese mainland and set Acceleration Region to Outside Chinese Mainland for the domain names, ICP filing is not required.

    • If the ingest domain and streaming domain are second-level domain names under the same top-level domain name, you need to apply for an ICP filing only for the top-level domain name.

Basic procedure

  1. Activate ApsaraVideo Live

  2. Add an ingest domain and a streaming domain

  3. Add CNAME records

  4. Associate the streaming domain with the ingest domain

  5. (Optional) Configure SSL certificates

  6. Enable RTS

  7. (Optional) Configure custom URL signing

  8. Generate ingest and streaming URLs

  9. Start RTS-based stream ingest

  10. Start RTS playback

Activate ApsaraVideo Live

Note

You can view the tutorial video to learn how to activate ApsaraVideo Live. For more information, see Activate ApsaraVideo Live.

  1. Log on to the Alibaba Cloud official website. In the top navigation bar, choose Products > ApsaraVideo Live. The ApsaraVideo Live homepage appears.

  2. Click Activate Now.

  3. On the ApsaraVideo Live activation page, select Pay-By-Traffic as the metering method. Read and agree to the ApsaraVideo Live Terms of Service.

  4. Click Activate Now.

Add an ingest domain and a streaming domain

To use RTS, you must add an ingest domain and a streaming domain.

Note

You can view the tutorial video to learn how to add a domain name. For more information, see Add a domain name.

  1. Log on to the ApsaraVideo Live console.

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

  3. Click Add Domain.

  4. Configure the domain name based on your business requirements.

    Important

    When you add a domain name to ApsaraVideo Live for the first time, ApsaraVideo Live verifies the ownership of the domain name. For more information, see Verify the ownership of a domain name.

    配置域名

    Show parameters

    Parameter

    Option

    Description

    Domain Type

    • Streaming Domain

    • Ingest Domain

    The type of the domain name. You can add an ingest domain or a streaming domain. This parameter cannot be modified once set.

    Note
    • To add an ingest domain, select Ingest Domain for Domain Type. To add a streaming domain, select Streaming Domain for Domain Type.

    • You cannot add a domain name both as an ingest domain and as a streaming domain.

    Domain Name

    N/A

    Enter the domain name that you want to accelerate. Take note of the following points:

    • In most cases, use a subdomain as an accelerated domain name. Example: demo.aliyundoc.com.

    • ApsaraVideo Live does not support wildcard domain names, such as *.aliyundoc.com.

    • Duplicate accelerated domain names are not allowed. If the error message The specified domain already exists is displayed, check whether the domain name is added to other cloud services such as ApsaraVideo VOD, Dynamic Route for CDN (DCDN), Secure CDN (SCDN), or Video Surveillance System.

    • After you activate ApsaraVideo Live, you can add up to 20 domain names to ApsaraVideo Live for each Alibaba Cloud account. If the average daily peak bandwidth of your domain names exceeds 50 Mbit/s, you can submit a ticket to increase the quota of domain names. Make sure that the quota increase does not incur business risks. For more information about how to submit a ticket, see Contact us.

    • Content that is served from the domain name must comply with the limits of ApsaraVideo Live. For more information, see Verify a domain name.

    Note

    The specified subdomain must belong to the same Alibaba Cloud account. When you add a subdomain, ApsaraVideo Live verifies the ownership of the subdomain. If the subdomain belongs to a different account, an error message appears.

    Acceleration Region

    Chinese Mainland

    • For an ingest domain, if the streamers are located in the Chinese mainland, select Chinese Mainland.

    • For a streaming domain, if the viewers are located in the Chinese mainland, select Chinese Mainland.

    Apply for an ICP filing from the Ministry of Industry and Information Technology of China (MIIT) for the domain name. We recommend that you use the Alibaba Cloud ICP Filing system.

    Global

    • For an ingest domain, if the streamers are located in the Chinese mainland, Hong Kong (China), Macao (China), Taiwan (China), and other countries and regions, select Global.

    • For a streaming domain, if the viewers are located in the Chinese mainland, Hong Kong (China), Macao (China), Taiwan (China), and other countries and regions, select Global.

    Apply for an ICP filing from the MIIT for the domain name. We recommend that you use the Alibaba Cloud ICP Filing system.

    Outside Chinese Mainland

    • For an ingest domain, if the streamers are located in countries and regions outside the Chinese mainland, including Hong Kong (China), Macao (China), and Taiwan (China), select Outside Chinese Mainland.

    • For a streaming domain, if the viewers are located in countries and regions outside the Chinese mainland, including Hong Kong (China), Macao (China), and Taiwan (China), select Outside Chinese Mainland.

    • If you select Outside Chinese Mainland and the live center is located outside the Chinese mainland, you do not need to apply for an ICP filing for the domain name.

    • If you select Outside Chinese Mainland and the live center is located in the Chinese mainland, you must apply for an ICP filing for the domain name. We recommend that you apply for an ICP filing by using the Alibaba Cloud ICP Filing system.

    Note

    For more information about how to select the acceleration region, see How do I select the acceleration region for a domain name? .

    Live Center

    N/A

    A live center provides media processing features for live streams in the cloud, such as snapshot capture, recording, transcoding, and production studio.

    The live center of an ingest domain must be located in the same region as that of the associated streaming domain. This parameter cannot be modified once set.

    For more information about how to select a live center, see How do I select a live center? .

  5. Note down the generated CNAME for use in the next step.

    image

Add CNAME records

Before you use RTS, you must add CNAME records at your DNS provider to map your ingest domain and streaming domain to the CNAME that is assigned by ApsaraVideo Live. The following example shows how to add a CNAME record when your DNS provider is Alibaba Cloud. For information about how to add a CNAME record at other DNS providers, see Add a CNAME record.

Note
  • The server that Alibaba Cloud CDN uses to resolve the CNAME of a domain name is deployed in the Chinese mainland. If you configure region-specific DNS settings for your domain name, for example, you add a CNAME record for your domain name in regions outside the Chinese mainland, including Hong Kong (China), Macao (China), and Taiwan (China), the domain name cannot be mapped to the CNAME. The status of the CNAME is Pending Configuration in the Alibaba Cloud CDN console. However, CDN acceleration for the domain name is not affected.

  • CNAMEs that are assigned by Alibaba Cloud CDN, Dynamic Content Delivery Network (DCDN), ApsaraVideo Live, and ApsaraVideo VOD can be used only for domain name resolution. If Alibaba Cloud discovers that your CNAME is used for unauthorized or malicious activities, Alibaba Cloud reserves the right to close your Alibaba Cloud account and remove the domain names.

  1. Log on to the Alibaba Cloud DNS console.

  2. In the left-side navigation pane, click Domain Name Resolution. The Domain Name Resolution page appears.

  3. Find the domain name for which you want to add a CNAME record and click DNS Settings in the Actions column.

  4. Click Add DNS Record and configure the parameters that are described in the following table.001

    Parameter

    Description

    Record Type

    Select CNAME from the drop-down list.

    Hostname

    Specify a prefix for the domain name. For more information about regular prefixes of domain names and sample domain names, see the following table.

    DNS Request Source

    Use the default value.

    Record Value

    Enter the CNAME that you obtained.

    TTL Period

    Use the default value.

    Prefix

    Sample domain name

    Description

    demo

    demo.aliyundoc.com

    The subdomain name.

    @

    aliyundoc.com

    The root domain name.

    *

    *.aliyundoc.com

    The wildcard domain name.

  5. Click OK.

Check whether a CNAME record takes effect

  • Method 1: On the Domain Management page of the ApsaraVideo Live console, click Open Configuration Guide in the CNAME Status column of the domain name. In the CNAME Configuration Guide panel, click Verify in the Verify the CNAME record section. You can know whether the CNAME record takes effect from the verification result that is displayed.

    image

  • Method 2: Run the nslookup -type=cname yourdomain.com command. If the CNAME that is returned is the same as the CNAME that is assigned to the domain name in the ApsaraVideo Live console, the CNAME record takes effect.image

Associate the streaming domain with the ingest domain

RTS uses the edge ingest method. To ingest and play streams, you must associate the streaming domain with the ingest domain.

Note

You can view the tutorial video to learn how to associate a streaming domain with an ingest domain. For more information, see Associate a streaming domain with an ingest domain.

  1. On the Domain Management page, find the streaming domain that you added and click Domain Settings in the Actions column. The Streaming Management > Basic Settings page appears.

  2. On the Basic Settings page, click the Basic Information tab.

    On the Basic Information tab, you can view the CNAME record, the time when the domain name was created, the type of the domain name, the live center, the acceleration region, and the quota limits.基础信息

    Note
    • You can manage quotas of ApsaraVideo Live only in the China (Beijing), China (Shanghai), China (Shenzhen), and Singapore regions. To increase quotas for other live centers, submit a ticket. For more information, see Contact us.

    • For more information about how to manage quotas of ApsaraVideo Live, see Quota management.

    • For more information about how to modify the acceleration region, see the Modify the acceleration region section of this topic.

  3. Click the Stream Ingest Information tab.

  4. Click Add Stream Ingest Information or the Edit icon next to Ingest Domain and select the ingest domain that you want to associate.

(Optional) Configure SSL certificates

For security reasons, if you want to implement RTS in a native browser, you must configure Secure Sockets Layer (SSL) certificates for the ingest domain and the streaming domain. For more information, see Configure HTTPS secure acceleration.

Note

If you use RTS SDK or the RTS demo, SSL certificates are not required.

Enable RTS

Important

From September 1, 2022, RTS and auto transcoding for HTML5 playback are automatically enabled for streaming domains that you add. No additional configurations are required. For streaming domains that were added before September 1, 2022, you must manually configure the settings.

  1. Log on to the ApsaraVideo Live console.

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

  3. Find the streaming domain for which you want to enable RTS and click Domain Settings in the Actions column.

  4. On the page that appears, choose Streaming Management > RTS.

  5. Turn on RTS.

  6. In the dialog box that appears, choose RTS 1.0 and turn on HTML5 Auto Transcoding.

    The WebRTC of native browsers does not support B-frames and the AAC audio format. To ensure smooth playback, the feature of auto transcoding for HTML5 playback performs adaptive transcoding.

    • If you use a browser to play a stream that contains B-frames and AAC audio, the B-frames are removed and the audio format is converted. You are charged for standard transcoding fees.

    • If you use a browser to play a stream that contains AAC audio but does not contain B-frames, the audio format is converted. You are charged for audio-only transcoding fees.

    • If you use a browser to play a stream and have configured a transcoding template, both the feature of auto transcoding for HTML5 playback and the transcoding template take effect. The transcoding is billed only once.

    • If you use Native RTS SDK to play a stream, transcoding is not required because the SDK supports B-frames and the AAC audio format.

    Note
    • Wait a few minutes and then check whether the configurations for RTS take effect.

    • To map an ingest domain to multiple streaming domains, you must bind one or more sub-streaming domains to a main streaming domain. For more information, see Bind a sub-streaming domain to a main streaming domain.

    • RTS and standard streaming can share the same streaming domain. However, we recommend that you configure a separate streaming domain for RTS because RTS uses User Datagram Protocol (UDP) while standard streaming uses Transmission Control Protocol (TCP).

(Optional) Configure custom URL signing

The URL signing feature can be used to protect resources on origin servers from unauthorized access and downloads. By default, URL signing is enabled for a domain name that you add.

You can use the default URL signing settings or custom URL signing settings based on your business requirements. If you use the default URL signing settings, no additional configuration is required. If you do not want to use the default settings, you can specify the Primary Key, Secondary Key, and Validity Period parameters.

Note

You can view the tutorial video to learn how to configure URL signing. For more information, see Configure URL signing.

  1. In the left-side navigation pane of the ApsaraVideo Live console, choose Domain Names. On the Domain Name Management page, find the streaming domain for which RTS is enabled and click Domain Settings in the Actions column.

  2. Choose Streaming Management > Access Control. The Access Control page appears.

  3. Click the URL Signing tab. Then, click Change Settings.

    Note

    When URL signing is enabled, you can click Change Settings to modify the URL signing settings. When URL signing is disabled, you can turn on URL Signing and then configure the URL signing settings.

  4. Configure the URL signing settings. The following table describes the parameters.

    Parameter

    Description

    Authentication Type

    ApsaraVideo Live streaming domains support only the authentication type of Type A to protect resources on the origin server.

    Note

    If URL signing fails, HTTP status code 403 is returned. In this case, you must recalculate the signature.

    • Invalid MD5 value

      Example: X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760be

    • Invalid timestamp

      Example: X-Tengine-Error:denied by req auth: expired timestamp=1439469547

    Primary Key

    After you add a domain name, ApsaraVideo Live generates a random primary key for the domain name. In the left-side navigation pane of the ApsaraVideo Live console, click Domain Names. Find the domain name that you want to configure and click Domain Settings in the Actions column. On the page that appears, choose Access Control. On the URL Signing tab, you can view the primary key and can also change the primary key.

    Secondary Key

    Specify a custom secondary key.

    Validity Period

    The signed URL can be used to initiate stream ingest or streaming requests only within the validity period. Persistent connections are established for stream ingest and streaming. Stream ingest and streaming requests that are initiated within the validity period are not dropped after the validity period expires. New stream ingest and streaming requests fail to be initiated after the validity period expires.

    The default validity period for a signed URL under a domain name that you add is 1 day or 1,440 minutes. You can specify a custom validity period for the signed URL. The minimum value is 1 minute. There is no upper limit.

Generate ingest and streaming URLs

You can generate an ingest URL and a streaming URL by using the ApsaraVideo Live console or construct the URLs by using the concatenation rules.

Method 1: Generate the URLs by using the console

If you want to quickly generate ingest and streaming URLs, use the URL generator in the console. For more information, see Live URL generator.

Method 2: Construct the URLs

Before you construct an ingest URL or a streaming URL for a live stream by using the concatenation rules, check whether the stream is transcoded and authenticated. Then, obtain an ingest domain, a streaming domain, an application name, a stream name, a transcoding template ID, and an access token. The transcoding template ID and access token are optional. The following table describes the concatenation rules.

URL type

URL format

Concatenation rule

Ingest URL

The Real-Time Messaging Protocol (RTMP), RTS, and Secure Reliable Transport (SRT) formats are supported. We recommend that you use the RTMP format. Example:

Ingest URL in the RTMP format: rtmp://demo.aliyundoc.com/app/stream?auth_key={Access token}

Note

RTS allows you to pull streams over RTS.

Ingest domain + Application name + Stream name + Access token

Streaming URL

The RTMP, Flash Video (FLV), M3U8, and RTS formats are supported. We recommend that you use the RTS format. Example:

Streaming URL in the RTS format: artc://example.aliyundoc.com/app/stream?auth_key={Access token}

Streaming domain + Application name + Stream name + Access token

Transcoded stream URL

Note

You must provide a transcoding template ID to construct a transcoded stream URL. The transcoded stream URL is required only if a transcoding template is used.

The RTMP, FLV, M3U8, and RTS formats are supported. We recommend that you use the RTS format. Example:

Transcoded stream URL in the RTS format: artc://example.aliyundoc.com/app/stream_{Transcoding template ID}?auth_key={Access token}

Streaming domain + Application name + Stream name_Transcoding template ID + Access token

Note
  • Associated streaming domain and ingest domain can be properly used only if the application name and stream name of the streaming domain match those of the ingest domain.

  • You must provide a transcoding template ID to generate a transcoded stream URL. You can view the transcoding template ID in the console. For more information, see Transcoding management.

  • An access token (auth_key) is an encrypted string that is generated based on the URL authentication algorithm. Access tokens are required if you enable URL signing. You can use the MD5 algorithm to obtain access tokens. For more information, see Construct a signed URL.

  • When you construct a URL by using the concatenation rules, replace {Transcoding template ID} or {Access token} with the actual value without {}.

Start RTS-based stream ingest

We recommend that you use the RTMP format for RTS-based stream ingest. In the following example, OBS Studio is used to ingest streams over RTMP. For more information about how to ingest streams over RTS, see Stream ingest for RTS.

  1. Download and install OBS Studio. Download link: OBS Studio.

  2. Run OBS Studio.

  3. In the menu bar, choose File > Settings.

  4. On the Settings page, click Stream and configure the following parameters.

    001

    Parameter

    Description

    Service

    Select Custom....

    Server

    Enter the signed ingest URL that is generated. Example: rtmp://demo.aliyundoc.com/app/stream?auth_key=1543302081-0-0-9c6e7c8190c10bdfb3c0************.

    Stream Key

    Leave this parameter empty.

  5. Optional: On the Settings page, click Output and configure the following parameters to remove B-frames.

    • Output Mode: Advanced

    • Keyframe Interval (seconds, 0=auto): 1

    • CPU Usage Preset (higher = less CPU): veryfast

    • Profile: baseline

    • Tune: zerolatency

    OBS设置

  6. Go to the homepage of OBS Studio. Find the Sources section, add a source, and click Start Streaming.

    002

Note

If you encounter issues such as stream ingest exceptions during stream ingest, you can use the troubleshooting tool to troubleshoot the issues. The tool allows you to diagnose common stream ingest issues and provides suggestions for you to resolve specific exceptions. For more information, see Troubleshooting.

Start RTS playback

The following table lists the players integrated with RTS SDK for RTS playback. Alibaba Cloud RTS provides demos for both mobile and web clients.

Note

If you encounter issues such as playback exceptions during streaming, you can use the troubleshooting tool to troubleshoot the issues. The tool allows you to diagnose common stream playback issues and provides suggestions for you to resolve specific exceptions. For more information, see Troubleshooting.

Other operations: verify the latency of RTS

You can add a time calibrator URL during stream ingest to verify the latency of RTS by comparing the streaming time with UTC. OBS Studio is used in this example.

Go to the homepage of OBS Studio. Add a time calibrator URL in the Sources section, and click Start Streaming.