As a module of ApsaraVideo MediaBox SDK, ApsaraVideo Player SDK offers video playback capabilities for both live streaming and on-demand content across multiple platforms, including Web, Android, iOS, Flutter, HarmonyOS, Windows, and macOS. This topic describes the features supported by ApsaraVideo Player SDK.
Basic features
The following tables describe the basic features of ApsaraVideo Player SDK for Web, Android, iOS, Flutter, and HarmonyOS. ✔️ indicates that the feature is supported and ❌ indicates that it is not.
Playback protocols and formats
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
VOD | Supports common audio and video formats, such as Flash Video (FLV), HTTP Live Streaming (HLS), MP4, and MP3. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Live streaming | Supports common audio and video formats, such as Real-Time Messaging Protocol (RTMP), FLV, and HLS. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ RTMP is not supported. |
Time shifting | Supports time-shifted viewing. You can set the start, stop, and current playback time, and seek to a specific point in time. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
H.264 encoding | Allows you to play video streams encoded in the H.264 format and switch between hardware and software decoding. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ The software and hardware 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. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ The software and hardware decoding depends on the browser settings. You must apply for them first. For more information, see Value-added services. |
H.265/H.264 decoding fallback | If a secondary H.264 stream is configured, the system automatically switches to playing the secondary H.264 stream when hardware decoding of the H.265 stream fails. If no secondary stream is configured, the system defaults to software decoding when hardware decoding fails. | ✔️ (Professional Edition only) | ✔️ (Professional Edition only) | ✔️ (Professional Edition only) | ❌ | ❌ |
H.266 encoding | Allows you to play video streams encoded in the H.266 format. | ✔️ You must apply for it first. For more information, see Value-added services. | ✔️️ You must apply for it first. For more information, see Value-added services. | ️✔️ You must apply for it first. For more information, see Value-added services. | ❌ | ✔️️️ You must apply for it first. 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. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Low-latency streaming | Supports low-latency streaming based on low-latency HLS (LL-HLS) and Dynamic Adaptive Streaming over HTTP (DASH). | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
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 SegmentBase and SegmentTemplate. | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) |
QUIC | Supports QUIC to enhance video transmission efficiency. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
High dynamic range (HDR) video playback | Supports multiple HDR formats such as HDR10 and hybrid log-gamma (HLG). | ✔️ | ✔️ | ✔️ | ❌ | ✔️ if the browser supports it |
URL-based playback | Allows you to play online or local videos from URLs. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
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. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Supplemental enhancement information (SEI) | Allows you to read SEI messages. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Network protocols
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Custom headers | Allows you to customize HTTP headers when you request audio and video resources. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ MP4 is not supported, and HLS and DASH are only partially supported. |
HTTPDNS | Allows you to send domain name resolution requests to the DNS server over HTTP to avoid domain name hijacking, cross-origin access issues, and playback failures. This is designed to replace the local DNS resolution method. Only Alibaba Cloud domain names are supported. | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
HTTP/2 | Supports HTTP/2. HTTP/2 significantly improves web performance and reduces data interaction latency by introducing new features such as binary framing, multiplexing, and header compression. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ if browser supports HTTP/2. For more information, see Can I use http2? |
HTTP/3 | Supports HTTP/3, which uses QUIC to accelerate content delivery. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ if your browser supports HTTP/3. For more information, see Can I use http3? |
Playback control
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Basic control | Supports playback control features, including start, stop, pause, video seeking, and autoplay. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Seeking | Allows you to drag the slider to a specific point in time and use gestures to move the slider on the UI. You can perform quick seeking and retain the cached video content during seeking. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Precise seeking | Supports video seeking to a specific frame. | ✔️ | ✔️ | ✔️ | ✔️ | Precise seeking in milliseconds is supported. |
Seeking inside a cached video | Allows you to perform quick seeking and retain the cached video content during seeking. | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
Resumed playback | Allows you to specify the point in time from which you want to resume playback. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Loop playback | Supports automatic replay of an audio or video file once playback ends. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Playlist playback | Supports playlist playback for short videos to improve loading speed. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Configurable playback speeds | Allows you to change the playback speed. The audio pitch remains unchanged regardless of the playback speed. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Manual definition switching | Allows you to switch video streams between different definitions in VOD scenarios. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Seamless resolution switching | Enables seamless switching between different live stream resolutions to enhance playback experience when you use Alibaba Cloud streaming URLs. | ✔️ | ✔️ | ✔️ | ❌ | ❌ Seamless switching between HLS and Dash is supported. |
Audio track switching | Allows you to switch between multiple audio tracks in VOD scenarios. | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Snapshot capture | Allows you to capture the current frame of a video and save the frame as a static image. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
Screen lock | Allows you to lock the screen orientation and hide UI elements. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
External subtitles | Allows you to import custom subtitle files. Web clients support VTT subtitles. Mobile clients support SRT, SSA, ASS, and VTT subtitles. | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️ (Professional Edition only) VTT subtitles are supported. |
Video effects
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Resizing | Supports image padding and cropping. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Rotating | Supports the following rotation angles: 0°, 90°, 180°, and 270°. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Mirror mode | Supports the following mirror modes: no mirroring, horizontal mirroring, and vertical mirroring. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Thumbnail preview (sprite) | Supports previewing the video thumbnail that appears when the progress bar is hovered. | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Brightness change | Enables gesture control to adjust screen brightness via the UI slider. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
Custom player size | Supports custom width and height settings of the player. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Picture-in-picture (PiP) | Supports video playback in PiP mode. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Audio effects
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Volume change | Allows you to change the volume when a video is being played. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Mute mode | Allows you to enable or disable mute mode. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Audio-only playback | Allows you to play only audio in a video file and common audio files such as audio files in MP3 and Advanced Audio Coding (AAC) formats. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Stereo audio | Allows you to play stereo audio. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Multiple audio tracks | Supports video files with multiple audio tracks, allowing you to switch between them during playback, such as switching from English to Chinese. | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Background playback | Allows you to continue playing audio streams when the application is switched from the UI to the background. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
Playback performance
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Retry upon playback failures | Supports automatic retries upon playback failures. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Automatic reconnection | Supports automatic reconnection during live streaming. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Local caching | Supports the play-and-cache feature during loop playback of short videos to reduce traffic consumption. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
Preloading | Enables control over video preloading by sliding, reducing the time to the first frame and enhancing playback smoothness even during fast sliding. | ️✔️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ❌ |
Pre-rendering | Enables background pre-rendering of the first frame of the next video to prevent black screens and ensure a seamless playback experience. | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ❌ | ❌ |
Scenario-specific demos | Provides scenario-specific demos for popular use cases, such as mini-dramas, along with complete, easy-to-integrate source code. Integrating the source code into your app ensures a seamless interactive experience and optimal technical performance. | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | N/A | ❌ | ❌ |
Multi-player playback | Allows multiple players on a single UI to play videos simultaneously. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Adaptive bitrate streaming | Supports seamless switching between bitrates. Both HLS and DASH support adaptive bitrate streaming (ABR). | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Dynamic frame synchronization | Supports dynamic frame synchronization for live streaming to reduce latency. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Advanced 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 reducing the stuttering rate, and improving the average playback bitrate. | ✔️ ️(Professional Edition only) | ✔️ ️(Professional Edition only) | ️✔️ (Professional Edition only) | ✔️️ (Professional Edition only) | ❌ |
Interactive features
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Subtitles | Allows you to import custom subtitle files. | ✔️ SRT, SSA, 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. | ️✔️ VTT subtitle files are supported. |
Video security
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
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 list. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
HLS encryption | Supports encryption based on the HLS AES-128 standard. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Alibaba Cloud proprietary cryptography | Supports Alibaba Cloud proprietary cryptography for M3U8 and MP4 videos to prevent leaks and hotlinking. | ✔️ | ✔️ | ✔️ | ❌ | ✔️ Some browsers support this feature. For more information, see Features supported by browsers. |
Local decryption | Supports decrypting videos encrypted with Alibaba Cloud proprietary cryptography directly on your on-premises device to enhance playback experience for your users across the world. | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ✔️️ (Professional Edition only) | ❌ | ❌ |
Secure download | Allows you to use the specified application to download and encrypt videos. | ✔️ | ✔️ | ✔️ | ✔️ | N/A |
Commercial DRM | Supports DRM encryption, including Widevine DRM encryption and FairPlay DRM encryption. | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Quality service
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Log reporting | Allows you to collect tracking information in the VOD and live streaming scenarios based on reported SDK logs. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Playback exception troubleshooting | Allows you to specify information about the user or playback session to identify and troubleshoot playback exceptions. | ✔️ The free edition allows you to query data in the last three days. | ️✔️ The free edition allows you to query data in the last three days. | ✔️️ The free edition allows you to query data in the last three days. | ️✔️ The free edition allows you to query data in the last three days. | ✔️️ The free edition allows you to query data in the last three days. |
Playback data dashboard | Allows you to view macro statistics such as the number of views and viewers. | ✔️️ The free edition allows you to query data in the last three days. | ✔️️ The free edition allows you to query data in the last three days. | ️✔️ The free edition allows you to query data in the last three days. | ️✔️ The free edition allows you to query data in the last three days. | ️✔️️ The free edition allows you to query data in the last three days. |
Development support
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Data output during rendering | Supports the output of pulse-code modulation (PCM) and YUV data during rendering. | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Event callbacks | Allows you to configure callbacks for the playback status, the first frame, the completion of playback, and playback failures. | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Decoding blacklist | Provides a list of models that do not support hardware decoding, along with optimization support. | ✔️ | ✔️ | ✔️ | ❌ | N/A |
Network speed display | Supports reporting the network speed of a player in real time. | ✔️ | ✔️ | ✔️ | ✔️ | Only RTS supports this feature. |
UI components | Provides complete UI components that you can use based on your business requirements. | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Value-added features
The following table describes the value-added features of ApsaraVideo Player SDK for Web, Android, iOS, Flutter, and HarmonyOS. To use these features, submit a ticket. In the following table, ️✔️ indicates that the feature is supported and ❌ indicates that it is not.
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
H.265 video playback | Allows you to play video streams encoded in the H.265 format and switch between hardware and software decoding. To use this feature, submit a ticket or contact your account manager. | ❌ | ❌ | ❌ | ❌ | ✔️ |
Super resolution | Allows you to upscale videos from a low resolution to a high resolution, improving 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. | ✔️ | ✔️ | ❌ | ❌ | ❌ |
Sharpening | Allows you to sharpen the image and highlight the details to improve playback experience. | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Frame interpolation | Allows you to fix stuttering in low FPS videos for a smoother playback experience. | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Audio enhancement | Supports Dolby Atmos and spatial audio to provide an immersive user experience. | ✔️ | ✔️ | ✔️ | ❌ | ❌ |