All Products
Search
Document Center

ApsaraVideo Live:Real-Time Streaming (RTS) FAQ

Last Updated:Dec 01, 2025

This topic addresses common issues and questions about Real-Time Streaming (RTS).

Can I use both standard live streaming and Real-Time Streaming (RTS) for the same live stream?

Yes, you can. For the same live stream, separate playback URLs are generated for standard live streaming and RTS. For example, the standard live stream uses an RTMP URL for playback: rtmp://${Playback Domain}/AppName/StreamName?${Access Token}. The RTS stream uses an ARTC URL for playback: artc://${Playback Domain}/AppName/StreamName?${Access Token}.

Can I integrate RTS using a self-developed SDK?

Yes, you can. You must follow the signaling protocol specifications of Alibaba Cloud. For more information, see GRTN signaling protocol specifications for standard WebRTC access.

Why can't I play a stream that is ingested from a web client using RTS?

Native browsers impose limitations on Web Real-Time Communication (WebRTC). Because of these limitations, the following restrictions apply when you use the Web RTS software development kit (SDK):

  • Video does not support B-frames. This can cause screen tearing.

  • Audio does not support AAC encoding. This can cause noise.

In the ApsaraVideo Live console, go to the Live+ > Real-Time Streaming (RTS) page. Turn on the Real-Time Streaming (RTS) switch and select sub-second latency (end-to-end latency of 700 ms to 900 ms). The system automatically detects B-frames and AAC audio and performs adaptive transcoding. This process incurs transcoding fees. For more information, see RTS pricing.

How do I customize the video resolution in the web live streaming SDK?

To customize the video resolution in the web SDK, see Web co-streaming SDK API reference.

How do I optimize OBS configurations for stream ingest in poor network conditions?

To enable the anti-stuttering feature for stream ingest in Open Broadcaster Software (OBS) in poor network conditions, perform the following steps:

  1. Start OBS.

  2. In the upper-left corner of the main interface, click File and select Settings.

  3. In the Settings window, select Output from the navigation pane on the left. Set Output Mode to Advanced to configure more detailed settings. image

  4. On the Streaming tab, configure the encoder to handle poor network conditions.

  5. In the encoder settings, increase the Group of Pictures (GOP) to 2 s and increase the number of B-frames. This helps improve stream smoothness.

  6. Switch to the Video tab on the left. Lower the resolution (for example, 720p) and frame rate (for example, 30 fps) to adapt to the network environment. image

  7. Ensure that your network connection is stable. A wired LAN connection is preferable to a Wi-Fi connection. You should also close other applications that consume bandwidth.

  8. After you complete the settings, click Apply and then OK to save the changes.

Why is the latency of RTS high?

RTS provides millisecond-level latency for live streaming. If the latency is significantly higher than 1 second, you can identify the cause by checking the following aspects:

  • Check the network status of the stream ingest client.

    Log on to the ApsaraVideo Live console. In the navigation pane on the left, select Monitoring > Real-time Monitoring.

    Enter the AppName and StreamName of the ingested stream. Monitor the ingest frame rate, bitrate, and timestamp for any abnormalities.

  • Obtain the RTS TraceID and submit a ticket to technical support.

    If the ingest frame rate, bitrate, and timestamp are normal but high latency and stuttering persist, play the stream in the player demo to obtain the TraceID for the playback session. For more information, see Obtain the RTS TraceID in the player demo. Then, submit a ticket to contact Alibaba Cloud technical support. For more information about how to submit a ticket, see Contact us.

Why is there no audio during HLS and FLV playback for a stream ingested from a web client using RTS?

When you ingest a stream from a web client using RTS, the audio is encoded in the OPUS format. You cannot play the stream directly in FLV or HLS format. To enable playback in FLV and HLS formats, you must use RTMP for stream ingest and RTS for playback. This configuration allows playback in both FLV and HLS formats.

Why can't I play an RTS video in a browser when the stream is ingested in H.265 format?

Native WebRTC in browsers does not support H.265. You must ensure that the ingested stream is in H.264 format or transcode the H.265 stream to H.264 in Alibaba Cloud for playback.

Which browsers are compatible with RTS?

For more information about the browsers that are compatible with RTS, see Browser requirements.

How do I solve the problem that QQ Browser on some Android devices fail to pull and ingest streams?

Some Android devices, such as Huawei P20 and vivo iQOO, may fail to start the X5 kernel after you install QQ Browser and open the browser for the first time. As a result, the WebRTC compatibility issue occurs and streams cannot be pulled and ingested. The following error message is reported: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection. If you encounter this problem, perform the following steps to make sure that the X5 kernel is initialized:

  1. Connect to a WI-FI network.

  2. Refresh the page and wait about 30 seconds.

  3. Restart the browser and visit the page again. The problem is solved.

Why do some browsers not support Web RTS SDK?

A browser does not support Web RTS SDK due to one of the following reasons:

  • The browser does not implement WebRTC-related API operations, or implement the API operations in a flawed manner. For example, Microsoft Internet Explorer and UC Browser.

  • The browser supports WebRTC-related API operations. However, the browser supports VP8 encoding but does not support H.264 encoding. For example, the built-in browser of some Android devices.

Why does Safari on iOS report the error message "Failed to set remote answer sdp"?

Problem description: The following error message is displayed.

Failed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer.

Analysis: You integrated other WebRTC SDKs, which causes webrtc-adapter conflicts. To prevent the issue, RTS SDK excludes the adapter from V2.2.4. You can use RTS SDK V2.2.4 or later with other WebRTC-related SDKs.

  • You can use JavaScript to directly integrate RTS SDK V2.2.4 or later.

  • If you want to use npm to integrate RTS SDK, compile the following code:

    import { AliRTS } from 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js';

    In the TypeScript project, you must declare the module to obtain type support.

    // Create file typings.d.ts in the root directory of the project.
    declare module 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js' {
      import {AliRTS} from 'aliyun-rts-sdk';
      export {AliRTS}
    }