All Products
Search
Document Center

ApsaraVideo Live:FAQ about playback

Last Updated:Sep 10, 2026

What streaming protocols does ApsaraVideo Live support?

How do I obtain a streaming URL?

How do I obtain a signed streaming URL?

What do I do if I fail to access resources over HTTPS?

What do I do if I get an error message when I play a live stream or recorded video in the ApsaraVideo Live console?

Why am I unable to view a live stream?

What do I do if RTMP and FLV playback is normal while HLS playback fails?

What do I do if FLV playback is normal while RTMP playback fails?

What do I do if I am unable to drag the slider on the progress bar in the Flash player?

What do I do if a message indicating a cross-origin error appears when the player plays M3U8 streams?

What do I do if the screen flickers during playback?

The video image has a gap with black borders

What do I do if audio and video are out of sync during live streaming?

What do I do if stuttering occurs during the playback of a live stream?

How do I get to the latest clip after a paused playback is resumed?

Playback issues (black screen, no video, or crash)

Audio plays but no video is displayed in the console or browser

Symptom: When you play a live stream in the console or a browser, you hear audio but see no video. A decoding failed error might also appear.

Solution:

  1. Check if the stream ingest source uses H.265 codec. Some browsers do not support H.265 and cannot render the video.

  2. If so, switch the codec at the stream ingest source to a common format, such as H.264 or AV1.

  3. If you must use H.265, play the stream using a dedicated player that supports H.265, such as ApsaraVideo Player.

The live stream suddenly goes black but recovers after rejoin

Symptom: During playback, the screen suddenly goes black. The video recovers after you exit and rejoin the stream. The screen might also flash once and then disappear.

Cause:

  • Disordered timestamps from the ingest source: The audio and video Decode Time Stamps (DTS) from the ingest source increase too rapidly or are not incremental. This causes the player to fail to parse the stream.

  • Missing keyframes: The ingest source does not insert keyframes at regular intervals. This prevents the player from decoding the stream correctly.

  • Network fluctuations at the ingest source: The network connection for the ingest source is unstable, which interrupts data transmission.

Solution:

  • Check the stability of the stream ingest device and software to ensure the ingest source is running correctly.

  • Set the Group of Pictures (GOP) to 2 s or less to ensure keyframes are inserted regularly.

  • Check the bandwidth and network conditions of the ingest source. Ensure the upstream bandwidth is sufficient and the connection is stable.

How do I fix a white screen when using the Web Player on HarmonyOS?

Symptom: When you use the Web Player to play a live stream on a HarmonyOS device, the page shows a white screen with no video.

Cause: An outdated version of the Web Player SDK is not compatible with the HarmonyOS environment.

Solution:

  1. Upgrade the Web Player SDK to version 2.37.8 or later to ensure compatibility with the HarmonyOS environment.

  2. Make sure the Web Player License is correctly configured: the application's client type must be set to Web, and a License must be bound to the application. For configuration steps, see License Integration Guide, section "Obtain and configure a Web Player SDK License".

Green screen occurs when playing over RTMP

Symptom: The video turns green when you play a live stream over the RTMP protocol.

Solution:

  • Switch the playback protocol to FLV or M3U8 (HLS). Both protocols are more stable than RTMP and can resolve occasional green-screen issues.

How do I troubleshoot audio-only playback (no video) or fast-forward stuttering on iOS and Mac devices?

Troubleshooting steps:

  • Switch to a different network environment and try again.

  • Switch to a different iOS device or an Android device for a comparison test, to rule out an issue specific to the device or network environment.

  • If the basic checks above do not resolve the issue, further investigate whether it is a cross-device compatibility issue.

How do I handle Aliplayer automatically resuming playback in a web live streaming scenario after the page becomes hidden or the screen turns off?

Cause: The live player itself does not automatically resume playback after it is paused. This behavior usually occurs because a method that starts playback in global code is triggered unexpectedly.

Solutions:

  • Check the frontend code logic for methods that start playback and may be triggered unexpectedly.

  • Implement playback state monitoring and handle unexpected states in your application.

  • To monitor the stream status, call the DescribeLiveStreamsOnlineList operation to query active streams, or configure live stream callbacks to receive notifications when a stream unexpectedly disconnects or recovers.

Playback errors and loading failures

Error 4008: Buffer data timeout

Cause: The network connection at the playback end is unstable, or the player's buffer policy is configured incorrectly. This causes a data loading timeout.

Solution:

  • Check the network connection at the playback end to ensure it is stable.

  • Refresh the page or reload the player.

  • If the problem persists, check the player's buffer policy configuration.

manifestLoadError (error code 4006) when loading an M3U8 stream in an H5 player

Causes:

  • The HTTPS certificate for the playback domain name is invalid, or a Cross-Origin Resource Sharing (CORS) policy is not configured.

  • Referer hotlink protection is enabled, but the player's domain name is not on the whitelist.

  • The AppName or StreamName in the URL does not match the configuration in the console.

Solutions:

  • Verify that the HTTPS certificate for the playback domain name is correctly configured, valid, and matches the domain name.

  • Confirm that the CORS configuration allows access from the domain where the player is hosted.

  • If Referer hotlink protection is enabled, add the player's domain name or the default Alibaba Cloud Referer to the whitelist.

  • Verify that the AppName and StreamName in the playback URL exactly match the stream ingest configuration in the console.

Failure in concurrent stream pulling

Symptom: When pulling multiple live streams simultaneously, some streams fail to load. Closing one stream allows the others to recover.

Causes:

  • Duplicate StreamNames for different streams cause a resource allocation conflict.

  • The player has insufficient local connections or decoding resources, which prevents the simultaneous processing of multiple streams.

Solutions:

  • Ensure that the StreamName for each stream is unique to avoid conflicts.

  • Check the player's concurrent connection limits. If necessary, adjust the player's concurrency settings or pull the streams in batches.

What do I do if AliPlayerSDK on iOS times out when playing an RTMP stream?

Cause: iOS supports pulling RTMP streams, but you cannot debug AliPlayerSDK by using Xcode online debugging. If your phone is connected to your computer over USB while debugging, the connection causes the playback to time out.

Solution: Disconnect the USB connection between your phone and computer, and then test playback again.

What do I do if audio permanently lags behind video after switching between the foreground and background in the ApsaraVideo Live SDK for iOS?

Cause: After the app returns to the foreground, the audio capture layer (AVAudioEngine) calls sendPCMData repeatedly within a short period. As a result, stale audio data accumulates in the SDK encoding queue, and audio lags behind video permanently.

Solutions:

  • Clear the cached audio data.

  • Call pusher.stopPush when the app enters the background to stop stream ingest, and then start stream ingest again after the app returns to the foreground.

How do I troubleshoot Web Player error 4002 when the signed streaming URL has not expired?

Symptom: The player returns error code 4002 even though the signed streaming URL has not expired.

Troubleshooting steps:

  • Check whether the streaming domain has a Referer whitelist, and make sure that the domain that hosts the player page is added to the whitelist.

  • Check whether Cross-Origin Resource Sharing (CORS) is enabled for the domain.

  • Check whether the issue is caused by a change to the Chrome browser engine in Chrome 130 or later. Upgrade the Web Player SDK to version 2.38.0 or later for logging, statistics, and compatibility support.

What do I do if stream pulling returns 404 and the player does not automatically reconnect after the stream recovers?

Cause of error 404: Error 404 indicates that the stream does not exist because stream ingest has not started or has stopped. By default, the player does not continuously retry after error 404. The application must implement recovery logic.

Solutions for error 404:

  • Listen for player error events. After error 404 occurs, wait 2 to 5 seconds before retrying playback, and limit the number of retries to prevent frequent requests.

  • Before starting playback, query stream ingest information to confirm that stream ingest has started, or use stream ingest and interruption callbacks to detect the stream status.

  • When streaming has not started, display a placeholder page or carousel instead of exposing the error directly to viewers.

Difference between "Connection Timeout was reached" and error 404: After stream ingest starts, the live center takes approximately 3 to 4 seconds to receive the data. If the player initiates stream pulling before the stream ingest connection is fully ready, a long-lived connection may be established but no audio or video data is received. This causes the "Connection Timeout was reached" error. Unlike error 404, this timeout does not indicate that the stream does not exist.

Solutions for "Connection Timeout was reached":

  • Client optimization: Add retry logic for this timeout error.

  • Business logic optimization: Configure a stream ingest callback URL on the server. Notify the player to initiate stream pulling only after the server receives the "stream ingest succeeded" callback from Alibaba Cloud.

  • Stream ingest stability: Keep stream ingest stable and avoid frequent starts and stops.

Playback protocols, codecs, and latency optimization

How do I configure the player SDK to support H.265 playback?

Description: To play an H.265-encoded live stream with ApsaraVideo Player SDK, you must meet the following prerequisites:

  • Apply for permission to enable H.265 playback (or configure your project in the console to support H.265).

  • Add the parameter is_enhanced_rtmp_play=on to the playback URL.

Note

This entry is closely related to the H.265 troubleshooting content in "Audio plays but no video is displayed in the console or browser" — that entry addresses codec detection at the stream ingest side, while this entry addresses SDK configuration and the playback URL parameter needed to enable H.265 pull-streaming playback.

How do I troubleshoot a stuck video when pulling a stream with a third-party plugin such as live-player?

Troubleshooting steps:

  1. Use the Alibaba Cloud Player Demo for a comparison test: select the live streaming type and enter the pull URL to preview.

  2. If playback in the Demo is normal, the issue lies with the third-party plugin or the client environment. Check the client-side logs.

  3. If the stuttering also occurs in the Demo, check the offline logs for the pull domain to rule out server-side 5xx errors and 403/404 configuration issues.