This topic answers frequently asked questions about Real-Time Streaming (RTS).
Can I use standard streaming and RTS to watch a live stream at the same time?
Yes. A standard streaming URL and an RTS URL are provided for each live stream. For example, the URL for Real-Time Messaging Protocol (RTMP)-based standard streaming is rtmp://${domain name}/AppName/StreamName?${access token}, and the URL for RTS is artc://${domain name}/AppName/StreamName?${access token}.
Can you access Real-Time Streaming (RTS) using a self-developed SDK?
Yes. You must follow the specifications of the Alibaba Cloud signaling protocol. For more information, see Specifications of WebRTC signaling used to access GRTN.
Why can't I play an ultra-low latency RTS stream published from the web?
Due to the limitations of native browsers on Web Real-Time Communication (WebRTC), the following restrictions apply when you use the Web RTS SDK:
Videos that contain B-frames are not supported. This may cause frame skips during playback.
Audio encoded in the AAC format is not supported. This may cause noise during playback.
In the ApsaraVideo Live console, go to the Live+ > RTS page, turn on the 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. Transcoding fees apply. For more information, see RTS pricing.
How do I customize the video resolution using the Web SDK?
To customize the video resolution using the Web SDK, see Methods provided by the co-streaming SDK for Web.
How do I optimize settings when I use OBS to ingest a stream in poor network conditions?
You can configure the following settings in Open Broadcaster Software (OBS) to improve stream performance in poor network conditions.
Open OBS.
In the upper-left corner of the main window, click File and then click Settings.
In the navigation pane on the left of the Settings window, click Output. Set Output Mode to Advanced.

On the Streaming tab, configure the encoder to adapt to poor network conditions.
Under Encoder Settings, increase the Group of Pictures (GOP) value, for example, to 2 s, and the number of B-frames. This helps improve playback smoothness.
In the navigation pane on the left, click Video. Reduce the resolution, for example, to 720p, and frame rate, for example, to 30 FPS, to adapt to your network environment.

Ensure that your network connection is stable. A wired LAN connection is recommended over Wi-Fi. You should also close other applications that consume bandwidth.
After you configure the settings, click Apply and then click OK to save the changes.
Why is the latency still high when I use RTS?
RTS provides millisecond-level live streaming latency. If the latency is significantly higher than 1 second, you can perform the following steps to troubleshoot the issue:
Check the network status on the stream ingest side.
Log on to the ApsaraVideo Live console. In the navigation pane on the left, choose .
Enter the AppName and StreamName of the ingested stream and check for abnormalities in the frame rate, bitrate, or timestamp.
Obtain the RTS TraceID and submit a ticket for technical support.
If the frame rate, bitrate, and timestamp are normal but high latency and stuttering persist, use the player demo to play the stream and obtain the TraceID. For more information, see Obtain an RTS TraceID using RTS demos. Then, submit a ticket to Alibaba Cloud technical support. For more information about how to submit a ticket, see Contact us.
What do I do if HLS-based and FLV-based playback has no sound when I use RTS to ingest a stream on the web?
When you use RTS to ingest a stream from a web client, the Opus codec is used for audio. Therefore, playback that uses Flash Video (FLV) or HTTP Live Streaming (HLS) is not supported. If you require FLV-based and HLS-based playback, we recommend that you ingest the stream over RTMP and play the stream over RTS. This method supports FLV-based and HLS-based playback.
What do I do if I cannot use RTS to play a video in the browser when I use H.265 for stream ingest?
Native WebRTC in browsers does not support H.265. You must use H.264 for stream ingest. Alternatively, you can use Alibaba Cloud services to transcode the H.265 stream to an H.264 stream for playback.
Which browsers are compatible with RTS?
For information about 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:
Connect to a WI-FI network.
Refresh the page and wait about 30 seconds.
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} }