This topic describes how to use Real-Time Streaming (RTS) when you are not using standard streaming.
Prerequisites
-
An Alibaba Cloud account is created and real-name verification is complete. To create
an Alibaba Cloud account, visit the Alibaba Cloud official website. For more information about how to create an Alibaba Cloud account, see Create an Alibaba Cloud account.
- An ingest domain and a streaming domain are available. ICP filing for the domain names
is complete. For more information, see ICP filing documentation.
Note
- If you are in a live center outside the Chinese mainland and set Edge Group to Outside Mainland China for the domain names, ICP filing is not required.
- If the ingest domain and the streaming domain are second-level domain names under
the same top-level domain name, you need to apply for an ICP number only for the top-level
domain name.
Activate ApsaraVideo Live
- Log on to the Alibaba Cloud official website. In the top navigation bar, choose . On the ApsaraVideo Live homepage,
- click Activate Now.
- On the ApsaraVideo Live activation page, select Pay-By-Traffic as the billing method. Read and agree to the service agreement.
- Click Activate Now.
Add an ingest domain and a streaming domain
To use RTS, you must add an ingest domain and a streaming domain.
- Log on to the ApsaraVideo Live console.
- In the left-side navigation pane, click Domains. The Domain Management page appears.
- Click Add Domain.
- Configure the domain name based on your business requirements.

Parameter |
Option |
Description |
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 name 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. You can also submit a ticket.
- After you activate ApsaraVideo Live, you can add a maximum of 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 your quota of domain names. Make sure that the quota increase does not
incur business risks.
- 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 name must belong to the same Alibaba Cloud account. When you
add a subdomain name, ApsaraVideo Live verifies the ownership of the subdomain name.
If the subdomain name belongs to a different account, an error message appears. If
you need technical support from Alibaba Cloud, submit a ticket.
|
Live Center |
N/A |
A live center provides media processing services 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 bound 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?.
|
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 as both an ingest domain and a streaming domain.
|
Edge Group |
Chinese Mainland |
The edge group in which content delivery is to be accelerated. Valid values:
- Chinese Mainland
For an ingest domain, if the streamers are located in the Chinese mainland, select
Chinese Mainland.
For a streaming domain, if the audience is located in the Chinese mainland, select
Chinese Mainland.
Apply for ICP filing from the Ministry of Industry and Information Technology of China
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), Macau (China), Taiwan (China), and other countries and regions, select Global.
For a streaming domain, if the audience is located in the Chinese mainland, Hong Kong
(China), Macau (China), Taiwan (China), and other countries and regions, select Global.
Apply for ICP filing from the Ministry of Industry and Information Technology of China
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), Macau (China), and Taiwan (China),
select Outside Chinese Mainland.
For a streaming domain, if the audience is located in countries and regions outside
the Chinese mainland, including Hong Kong (China), Macau (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 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 ICP filing
for the domain name. We recommend that you apply for ICP filing by using the Alibaba Cloud ICP Filing system.
|
Global |
Outside Chinese Mainland |
- Click Submit.
Add CNAME records
Before you use RTS, you must add CNAME records at your DNS service 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 service provider is Alibaba
Cloud. For information about how to add a CNAME record at other DNS service providers,
see Configure 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
names, for example, you add a CNAME record for your domain name in regions outside
the Chinese mainland, including Hong Kong (China), Macao (China), 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 Route for CDN (DCDN), ApsaraVideo
Live, and ApsaraVideo VOD are used only for domain name resolution. If you use the
CNAMEs to engage in malicious activities, Alibaba Cloud reserves the right to close
your Alibaba Cloud account and remove the domain names.
- Log on to the Alibaba Cloud DNS console.
- In the left-side navigation pane, click Domain Name Resolution. The Domain Name Resolution page appears.
- Find the domain name for which you want to configure a CNAME record and click DNS Settings in the Actions column.
- Click Add DNS Record. In the Add DNS Record panel, set the parameters that are described in the following
table.

Parameter |
Description |
Record Type |
Select CNAME- Canonical name 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 Line |
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 is resolved. |
@ |
aliyundoc.com |
The main domain name is resolved. |
* |
*.aliyundoc.com |
A wildcard DNS record is configured. |
- Click Confirm.
To check whether a CNAME record is in effect, run the ping <domain name> or dig <domain name> command. If a message which indicates that the domain name is resolved to *.*kunlun*.com
is displayed, the CNAME record is in effect.
Bind the ingest domain to the streaming domain
RTS uses the edge ingest method. To ingest and play streams, you must bind the ingest
domain to the streaming domain.
- On the Domain Management page, find the streaming domain that you added and click Domain Settings in the Actions column. The page appears.
- Click the Basic Information tab.
On this tab, you can view the CNAME, Added At, Domain Type, Live Center, Edge Group,
and Quota Limits information.

Note
- You can manage quotas of ApsaraVideo Live only in the China (Beijing), China (Shanghai),
China (Shenzhen), and Singapore (Singapore) regions. To increase quotas for other
centers, submit a ticket.
- For more information about quota limits, see Quota management.
- For more information about how to change the edge group, see Change the edge group.
- Click the Stream Ingest Information tab to view recordings stored in OSS buckets.
- Click Add Stream Ingest Information or the Edit icon next to Ingest Domain and select the ingest domain that you want to bind.
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.
- Log on to the ApsaraVideo Live console.
- In the left-side navigation pane, click Domains. The Domain Management page appears.
- Find the streaming domain for which you want to enable RTS and click Domain Settings in the Actions column.
- On the page that appears, choose .
- Turn on RTS.
- In the dialog box that appears, turn on Auto Transcoding for HTML5 Playback.
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
You can use the URL authentication feature to protect resources on origin servers
from unauthorized access and downloads. We recommend that you keep this feature enabled
to prevent your content from being pirated.
You can use the default URL authentication method or a custom URL authentication method
based on your business requirements. If you select the default URL authentication
method, no additional configuration is required. If you do not want to use the default
configurations, you can set the Primary Key, Secondary Key, Validity Period, and Original URL parameters as needed.
- On the Domains page, find the streaming domain for which RTS is enabled and click Domain Settings in the Actions column.
- Choose . The Access Control page appears.
- Click the URL Authentication tab and turn on URL Authentication.
- Configure the URL authentication information.
The following table describes the parameters.
Parameter |
Description |
Authentication Type |
ApsaraVideo Live streaming domains support only Authentication Type A to protect resources
on the origin server.
Note If URL authentication fails, a 403 error code is returned. In this case, you must
recalculate the signature.
|
Primary Key |
After you add a domain name, a random primary key is generated in the console. To
view the primary key of a domain name, click Domains in the left-side navigation pane and click the domain name. On the page that appears,
choose . Then, view the primary key on the URL Authentication tab. You can change the primary key for the selected authentication type.
|
Secondary Key |
Specify the secondary key for the selected authentication type. |
Validity Period |
The signed URL can be used to initiate stream ingest and streaming requests only during
the validity period. Persistent connections are established for stream ingest and
live streaming. Stream ingest and live streaming requests that are initiated within
the validity period are not dropped after the validity period elapses. New stream
ingest and live streaming requests fail to be initiated after the validity period
elapses.
Default value: 1 day. You can specify a custom default validity period for the signed
URL.
|
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 concatenating 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
concatenating 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 concatenating rules.
URL type |
URL format |
Concatenating 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
- Bound streaming domain and ingest domain can be used as long as 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 authentication.
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 concatenating 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. If you want to use the RTS format for stream ingest, you need to integrate
Push SDK. For more information, see Use Push SDK to ingest streams.
- Download and install OBS Studio. Download link: OBS Studio.
- Run OBS Studio.
- In the menu bar, choose .
- On the Settings page, click Stream and configure the following parameters.

Parameter |
Description |
Service |
Select Custom....
|
Server |
Enter the generated ingest URL that is authenticated. Example: rtmp://demo.aliyundoc.com/app/stream?auth_key=1543302081-0-0-9c6e7c8190c10bdfb3c0************ .
|
Stream Key |
Leave this parameter empty. |
- 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

- Go to the homepage of OBS Studio. Find the Sources section, add a source, and click Start Streaming.
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.