As a module of ApsaraVideo MediaBox SDK, ApsaraVideo Player SDK provides the video playback feature for live streaming and video-on-demand (VOD) scenarios. ApsaraVideo Player SDK supports multiple platforms, such as web, Android, iOS, Flutter, HarmonyOS, Windows, and macOS. This topic describes the features supported by ApsaraVideo Player SDK.
Standard features
The following tables describe the standard features of ApsaraVideo Player SDK for web, Android, iOS, Flutter, and HarmonyOS.
Playback protocols and formats
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
VOD | Supports common audio and video formats in VOD scenarios, such as Flash Video (FLV), HTTP Live Streaming (HLS), MP4, and MP3. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Live streaming | Supports common audio and video formats in live streaming scenarios, such as Real-Time Messaging Protocol (RTMP), FLV, and HLS. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Only the RTMP protocol is not supported. |
Time shifting | Allows you to play live streams in time shifting mode. You can set the start, stop, and current playback time and seek to a specific point in time. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
H.264 encoding | Allows you to play video streams encoded in the H.264 format and switch between hardware and software decoding. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Hardware or software decoding depends on the browser settings |
H.265 encoding | Allows you to play video streams encoded in the H.265 format and switch between hardware and software decoding. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Supported after you submit an application. For more information, see Value-added services. Hardware or software decoding depends on the browser settings. |
H.266 encoding | Allows you to play video streams encoded in the H.266 format. | Supported after you submit an application. For more information, see Value-added services. | Supported after you submit an application. For more information, see Value-added services. | Supported after you submit an application. For more information, see Value-added services. | Not supported | Supported after you submit an application. For more information, see Value-added services. |
Real-Time Streaming (RTS) | Supports Alibaba Cloud RTS that is characterized by high concurrency, low stuttering rate, and low latency within milliseconds. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Low-latency streaming | Supports low-latency streaming based on low-latency HLS (LL-HLS) and Dynamic Adaptive Streaming over HTTP (DASH). | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
DASH | Supports the playback of video streams that are packaged by using DASH. For example, you can play video files that are encapsulated by using the SegmentBase and SegmentTemplate segment referring schemes. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
QUIC acceleration | Supports the Quick UDP Internet Connections (QUIC) protocol to improve video transmission efficiency. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
High dynamic range (HDR) video playback | Supports multiple HDR formats such as HDR10 and hybrid log-gamma (HLG). | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | The type of your browser determines whether HTTP/2 is supported. |
URL-based playback | Supports URL-based playback of online or local videos. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Video ID (VID)-based playback | Supports VID-based playback. You can specify the streaming URLs of a video stream in multiple definitions at a time. For example, you can use VidAuth and VidSts sources for playback. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Supplemental enhancement information (SEI) | Allows you to read SEI messages. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Network protocols
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Custom headers | Allows you to customize HTTP headers when you request audio and video resources. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | MP4 videos are not supported. HLS and DASH videos are partially supported. |
HTTPDNS | Supports HTTPDNS to prevent Domain Name System (DNS) hijacking. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported |
HTTP/2 | Supports HTTP/2 and uses the latest features such as binary framing, multiplexing, and header compression to significantly improve web performance and reduce data interaction latency. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Depends on whether your browser supports HTTP/2. For more information, see Can I use http2? |
HTTP/3 | Supports HTTP/3 and accelerates content delivery based on the Quick UDP Internet Connections (QUIC) protocol. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Depends on whether your browser supports HTTP/3. For more information, see Can I use http3? |
Playback control
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Basic playback control | Supports playback control features, including start, stop, pause, video seeking, and autoplay. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
seek | Allows you to drag the slider on the progress bar to the specified point in time. You can use gestures to control the slider on the UI. You can experience quick seeking and retain the cached video content during seeking without clearing the cached video content. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Precise seeking | Supports video seeking to a specified frame. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Supports precise seeking in milliseconds. |
Seeking inside a cached video | Allows you to perform quick seeking and retain the cached video content during seeking. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported |
Resumed playback | Allows you to specify the point in time for resuming playback. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Loop playback | Supports automatic replay after the playback of an audio or video file ends. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
List playback | Supports list playback for short videos to improve the loading speed. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Configurable playback speeds | Allows you to adjust the playback speed. The audio pitch remains unchanged at different playback speeds. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Manual definition switching | Allows you to switch video streams in different definitions. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Seamless resolution switching | Allows you to seamlessly switch live streams between different resolutions to improve playback experience when you use Alibaba Cloud streaming URLs. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | Supports the seamless switching between the HLS and DASH formats. |
Audio track switching | Allows you to switch among multiple audio tracks in VOD scenarios. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | ️️️️️️️️️Supported |
Snapshot capture | Allows you to capture the current frame of a video and save the frame as a static image. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
Screen lock | Allows you to lock the screen orientation and hide UI elements. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
Video effects
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Video image resizing | Supports image padding and cropping. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Video image rotation | Supports the following rendering angles for video images: 0°, 90°, 180°, and 270°. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Mirroring | Supports the following image rendering modes: no mirroring, horizontal mirroring, and vertical mirroring. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Thumbnail preview (sprite snapshot) | Supports thumbnail preview on the progress bar. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | ️️️️️️️️️Supported |
Brightness adjustment | Allows you to adjust the system brightness. You can use gestures to adjust the brightness on the UI. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
Custom player size | Supports custom settings for the width and height of the player. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Picture-in-picture (PiP) | Supports picture-in-picture playback. | ️️️️️️️️️Supported | Playback in PiP mode is not supported for iOS 14 and earlier. | Supports the PiP API for iOS, but does not support the PiP API for Android. | Not supported | Not supported |
Audio effects
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Volume change | Allows you to change the volume of a video during playback. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Mute mode | Allows you to enable or disable the mute mode. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Audio-only playback | Allows you to play only the audio stream in a video file and common audio files, such as audio files in the MP3 and Advanced Audio Coding (AAC) formats. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Binaural audio | Allows you to play binaural audio tracks. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Multiple-track | Allows you to play video files with multiple audio tracks. You can switch audio tracks during playback, such as from English to Chinese. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | ️️️️️️️️️Supported |
Background playback | Allows you to continue playing audio streams when the application is switched from the UI to the background. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
Playback performance
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Retry of playback upon failures | Supports automatic retries once the playback fails. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Automatic reconnection | ApsaraVideo Player SDK supports automatic reconnection during live streaming. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Local caching | Supports the play-and-cache feature for the loop playback of short videos. This feature allows caching during video playback and helps reduce traffic consumption. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
Preloading | Preloads videos to accelerate the startup of video playback. This feature is an enhancement to the local caching feature. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Multi-player playback | Allows you to add multiple players on one UI to simultaneously play videos. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Network-adaptive playback of multi-bitrate video streams | Supports seamless multi-bitrate switching of live streams in the HLS and DASH formats. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Dynamic frame synchronization | Supports dynamic frame synchronization for live streaming to reduce latency. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Interactive features
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Subtitles | Allows you to import custom subtitle files. | SubRip Text (SRT), SubStation Alpha (SSA), Advanced SubStation Alpha (ASS), and VTT subtitle files are supported. | SRT, SSA, ASS, and VTT subtitle files are supported. | SRT, SSA, ASS, and VTT subtitle files are supported. | Only subtitle text parsing is supported. | Only Video Text Tracks (VTT) subtitle files are supported. |
Video security
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Referer blacklist or whitelist | Allows you to configure a Referer blacklist or whitelist to identify the source of a playback request based on the Referer and filter requests based on the blacklist or whitelist. | ️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
HLS encryption | Supports the playback of streams encrypted based on the HLS AES-128 standard. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Alibaba Cloud proprietary cryptography | Supports Alibaba Cloud proprietary cryptography for HLS videos, whose URL suffix is .m3u8, and MP4 videos to prevent video leaks and hotlinking. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | For more information about the browsers that support HTML5, see Browsers supported by the HTML5 player. |
Secure download | Allows you to use the specified application to download and encrypt videos. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | N/A |
DRM management | Supports Widevine DRM and FairPlay DRM. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | ️️️️️️️️️Supported |
Quality monitoring
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Log reporting | Allows you to collect tracking information about VOD playback and live streaming based on reported SDK logs. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Playback exception troubleshooting | Allows you to locate and troubleshoot playback exceptions by specifying the user or playback session. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. |
Data dashboard | Allows you to view macro statistics such as the number of playback requests and users. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. | The free edition allows you to query data in the previous three days. |
Development support
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Data output during audio and video rendering | Supports the output of pulse-code modulation (PCM) and YUV data during rendering. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | Not supported |
Event callbacks | Allows you to set callbacks for playback status, the first audio or video frame that is rendered, the completion of playback, and playback failures. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
Decoding blacklist | Provides a list of models that do not support hardware decoding, along with optimization support. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | N/A |
Network speed display | Supports the feature of reporting the network speed of a player in real time. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Supports this feature only for RTS. |
UI components | Provides complete UI components that you can use based on your business requirements. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | ️️️️️️️️️Supported |
Value-added services
The following tables describe the value-added services of ApsaraVideo Player SDK for web, Android, and iOS. To use value-added services, submit a ticket.
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
H.265 video playback | Supports the playback of video streams encoded in the H.265 format. This consumes less bandwidth and delivers better playback performance than the playback of video streams encoded in the H.264 format. Note To play H.265 videos on web browsers, submit a ticket or contact your Alibaba Cloud account manager. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported |
H.266 video playback | Supports the playback of video streams encoded in the H.266 format. This consumes less bandwidth and delivers better playback performance than the playback of video streams encoded in the H.264 or H.265 format. Note To play H.266 videos, submit a ticket or contact your Alibaba Cloud account manager. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | ️️️️️️️️️Supported |
Advanced adaptive bitrate streaming (ABR) policies | Supports advanced ABR policies. Compared with a general ABR policy, an advanced ABR policy better adapts to multi-bitrate HLS or DASH video streams, significantly reduces the stuttering rate, and improves the average playback bitrate. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported |
On-device super resolution | Allows you to upscale videos from a low resolution to a high resolution. This improves video quality and playback experience. You can use a video source that has a lower bitrate without compromising playback experience. This helps reduce video transmission costs. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | Not supported | Not supported |
Sharpening | Allows you to sharpen the image and highlight the details to improve playback experience. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | Not supported |
Frame interpolation | Allows you to use frame interpolation to fix stuttering when you play low-bitrate videos. This ensures smooth playback experience. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | Not supported |
Audio enhancement | Allows you to use Dolby Atmos and spatial audio technologies to provide immersive user experience. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported | Not supported |
Enhanced HTTPDNS | Allows you to implement precise scheduling and real-time resolution for domain names that are accelerated by Alibaba Cloud CDN. This improves network performance. Note The enhanced HTTPDNS feature is supported in ApsaraVideo Player SDK V6.7.0 or later. To use the enhanced HTTPDNS feature in ApsaraVideo Player SDK V6.7.0 to V6.11.0, submit a ticket or contact your Alibaba Cloud account manager. If you use ApsaraVideo Player SDK V6.12.0 or later, the enhanced HTTPDNS feature is enabled by default and no application is required. | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | ️️️️️️️️️Supported | Not supported |