ApsaraVideo Player SDK feature details
ApsaraVideo Player SDK, part of MediaBox Audio and Video SDK, provides video playback for live streaming and VOD across Android, iOS, Flutter, HarmonyOS, Web, Windows, and macOS. The following tables list supported features and platform availability.
Billing for the mobile ApsaraVideo Player SDK will start on February 14, 2025 (starting from version 7.0.0). You can opt for a free trial or purchase a license from the Audio and Video Terminal SDK purchase page. Discounted packages are available. ApsaraVideo Player SDK billing. After purchase, activate your license per Activate a player license.
If your spending on ApsaraVideo VOD, ApsaraVideo Live, or Intelligent Media Services resources reaches a specific amount, you can get a free one-year license for the Standard or Professional Edition of ApsaraVideo Player SDK. ApsaraVideo Player SDK billing.
Newly purchased Standard Edition licenses for Web require version 2.29.1 or later. Newly purchased Professional Edition licenses for mobile require version 7.0.0 or later. Confirm your integrated SDK version before purchasing.
Table symbols
Symbol | Meaning |
Supported | The feature is available on this platform. |
Not supported | The feature is not available on this platform. |
N/A | The feature does not apply to this platform. |
Pro | The feature requires the Professional Edition. |
Standard features
Playback protocols and formats
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
On-demand playback | Plays on-demand audio and video formats: FLV, HLS, MP4, and MP3. | Supported | Supported | Supported | Supported | Supported [^1] |
Live playback | Plays live streaming formats: RTMP, FLV, and HLS. | Supported | Supported | Supported | Supported | Supported [^2] |
Time shifting | Plays time-shifted live streams. Set the start time, end time, and current supported time. Supports drag seeking. | Supported | Supported | Supported | Supported | Supported |
H.264 codec | Plays H.264-encoded video streams. Supports switching between software and hardware decoding. | Supported | Supported | Supported | Supported | Supported [^3] |
H.265 codec | Plays H.265-encoded video streams. Supports switching between software and hardware decoding. | Supported | Supported | Supported | Supported | Supported [^4] |
H.266 codec | Plays H.266-encoded video streams. | Supported (Pro) [^5] | Supported (Pro) [^6] | Not supported | Not supported | Supported [^4] |
H.265 adaptive playback | If H.265 hardware decoding fails and an H.264 backup stream is configured, the player switches to the H.264 stream. Otherwise, falls back to H.265 software decoding. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Not supported | Not supported |
Real-Time Streaming (RTS) | Supports Alibaba Cloud RTS for high concurrency, low stuttering, and millisecond-level latency. | Supported | Supported | Supported | Not supported | Supported |
Low-latency live streaming | Plays low-latency streams using the LL-HLS and DASH protocols. | Supported | Supported | Supported | Supported | Supported |
DASH protocol | Plays standard DASH video streams, including SegmentBase and SegmentTemplate. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Supported (Pro) | Supported |
QUIC acceleration | Uses the QUIC transport protocol to improve video transmission efficiency. | Supported | Supported | Supported | Supported | N/A |
HDR video playback | Supports HDR formats including HDR10 and HLG. | Supported | Supported | Supported | Not supported | Supported [^3] |
URL playback | Plays online and local videos from a URL. | Supported | Supported | Supported | Supported | Supported |
VID playback | Plays videos by video ID (VID). Retrieves streaming URLs for multiple definitions. Supports VidAuth and VidSts. | Supported | Supported | Supported | Supported | Supported |
SEI messages | Receives and reads Supplemental Enhancement Information (SEI) messages. | Supported | Supported | Supported | Supported | Supported |
Network protocols
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Custom header | Customizes HTTP headers in audio or video resource requests. | Supported | Supported | Supported | Supported | Supported [^7] |
Cloud domain HTTPDNS | Resolves domains over HTTP instead of local DNS to prevent hijacking and cross-network failures. Alibaba Cloud domains only. | Supported | Supported | Supported | Supported | Not supported |
HTTP/2 | Leverages HTTP/2 binary framing, multiplexing, and header compression to reduce latency. | Supported | Supported | Supported | Supported | Supported [^8] |
HTTP/3 | QUIC-based HTTP/3 for faster video delivery. | Supported | Supported | Supported | Supported | Supported [^9] |
Playback control
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Basic controls | Start, stop, pause, seek, and autoplay. | Supported | Supported | Supported | Supported | Supported |
Seek | Seeks to a specific position with gesture support. Preserves buffered content. | Supported | Supported | Supported | Supported | Supported |
Precise seek | Seeks to a specific position with frame-level precision. | Supported | Supported | Supported | Supported | Supported [^10] |
Seek within cache | Seeks within buffered content without clearing the buffer for fast seeking. | Supported | Supported | Supported | Supported | Not supported |
Resume playback | Sets a start time to resume playback from a previous position. | Supported | Supported | Supported | Supported | Supported |
Loop playback | Automatically replays audio or video after playback finishes. | Supported | Supported | Supported | Supported | Supported |
List playback | Playlist-based playback for short videos with faster loading. | Supported | Supported | Supported | Supported | Supported |
Playback speed control | Adjusts playback speed without changing audio pitch. | Supported | Supported | Supported | Supported | Supported |
Manual definition switching | Switches between multiple definitions for on-demand video streams. | Supported | Supported | Supported | Supported | Supported |
Seamless switching | Switches between live stream resolutions during playback (switchStream). Alibaba Cloud live URLs only. | Supported | Supported | Supported | Not supported | Not supported [^11] |
Switch audio tracks | Switches between multiple audio tracks for on-demand video streams. | Supported | Supported | Supported | Not supported | Supported |
Screenshot | Captures the current video frame and saves it as a static image. | Supported | Supported | Supported | Supported | N/A |
Lock screen | Locks screen rotation and hides UI elements. | Supported | Supported | Supported | Supported | N/A |
External subtitles | Imports custom subtitle files. Mobile clients support SRT, SSA, ASS, and VTT subtitles. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Supported (Pro) | Supported [^12] |
Screen casting | The screen casting SDK has been discontinued and screen casting is not supported. To implement screen casting, use the video URLs provided by ApsaraVideo VOD with third-party casting protocols such as DLNA, AirPlay, or Miracast, or with device vendor SDKs. | Not supported | Not supported | Not supported | Not supported | Not supported |
Video effects
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Padding | Two display modes: fill and crop. | Supported | Supported | Supported | Supported | Supported |
Rotation | Sets the video rendering angle to 0, 90, 180, or 270 degrees. | Supported | Supported | Supported | Supported | Supported |
Mirror | Three mirror modes: none, horizontal, and vertical. | Supported | Supported | Supported | Supported | Supported |
Thumbnail preview (sprite) | Displays thumbnail previews on the progress bar. | Supported | Supported | Supported | Not supported | Supported |
Brightness adjustment | Adjusts system brightness. The UI supports gestures. | Supported | Supported | Supported | Supported | N/A |
Custom player size | Sets custom player width and height. | Supported | Supported | Supported | Supported | Supported |
Picture-in-Picture (PiP) playback | Switches to PiP mode for playback in a small window. | Supported | Supported | Supported | Supported | Supported |
Audio effects
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Volume adjustment | Adjusts the video volume through system APIs. | Supported | Supported | Supported | Supported | Supported |
Mute | Enables and disables muting. | Supported | Supported | Supported | Supported | Supported |
Audio-only playback | Plays only the audio from a video file, or plays audio files such as MP3 and AAC. | Supported | Supported | Supported | Supported | Supported |
Dual-channel audio | Plays dual-channel audio. | Supported | Supported | Supported | Supported | Supported |
Multiple audio tracks | Plays video files with multiple audio tracks. Supports switching between tracks during playback. | Supported | Supported | Supported | Not supported | Supported |
Background playback | Continues audio playback after the app moves to the background. | Supported | Supported | Supported | Supported | N/A |
Playback performance
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Retry on playback failure | Automatically retries when playback fails. | Supported | Supported | Supported | Supported | Supported |
Auto-reconnect | Automatically reconnects for live streams. | Supported | Supported | Supported | Supported | Supported |
Local cache | Caches content locally during playback. Reduces bandwidth for short video loops. | Supported | Supported | Supported | Supported | N/A |
Preloading | Dynamically controls preloading with a sliding window policy. Improves first-frame speed and scrolling smoothness. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Supported (Pro) | Not supported |
Pre-rendering | Pre-renders the first frame of the next video to reduce black screens during transitions. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Not supported | Not supported |
Scenario-based multi-instance demo | Complete source code demos for scenarios such as short dramas. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Not supported | Not supported |
Multiple instances | Adds multiple players to a single interface for simultaneous playback. | Supported | Supported | Supported | Supported | Supported |
Adaptive bitrate streaming | Seamlessly switches between multi-bitrate HLS and DASH streams. | Supported | Supported | Supported | Supported | Supported |
Dynamic frame synchronization | Synchronizes frames dynamically for live streams to reduce latency. | Supported | Supported | Supported | Supported | Supported |
Advanced ABR policy | Improved ABR for multi-bitrate HLS and DASH streams. Reduces stuttering and raises average bitrate compared with standard policies. | Supported (Pro) | Supported (Pro) | Supported (Pro) | Supported (Pro) | Not supported |
Interactive features
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Subtitles | Imports custom subtitle files. | Supported [^13] | Supported [^13] | Supported [^13] | Not supported [^14] | Supported [^12] |
Video security
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Referer blacklists and whitelists | Filters requests by the Referer header using blacklists or whitelists. | Supported | Supported | Supported | Supported | Supported |
HLS encryption | Supports the standard AES-128 encryption scheme. | Supported | Supported | Supported | Supported | Supported |
Alibaba Cloud encryption (private) | Encrypts HLS and MP4 videos with Alibaba Cloud private encryption to prevent leaks and hotlinking. | Supported | Supported | Supported | Supported | Supported [^15] |
Alibaba Cloud video encryption (private license-based) | Plays from encrypted URLs directly. Faster startup and better cross-region support than standard private encryption. | Supported | Supported | Supported | Supported | Not supported |
Secure download | Downloads and encrypts videos through a unique application. | Supported | Supported | Supported | Supported | N/A |
Commercial DRM | Supports Widevine and FairPlay DRM encryption schemes. | Supported | Supported | Supported | Not supported | Supported |
Quality of service
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Log reporting | Reports SDK logs and collects playback metrics for VOD and live streaming. | Supported | Supported | Supported | Supported | Supported |
Playback issue tracking | Tracks playback history by user or session to diagnose issues. | Supported [^16] | Supported [^16] | Supported [^16] | Supported [^16] | Supported [^16] |
Playback data dashboard | Monitors aggregate playback metrics such as play count and unique users. | Supported [^16] | Supported [^16] | Supported [^16] | Supported [^16] | Supported [^16] |
Developer support
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
Rendered data output | Outputs PCM and YUV data during rendering. | Supported | Supported | Supported | Not supported | Not supported |
Event callbacks | Provides callbacks for playback status, first frame, playback completion, and playback failure. | Supported | Supported | Supported | Supported | Supported |
Decoding policy blacklist | Lists device models that do not support hardware decoding, with optimization support. | Supported | Supported | Supported | Not supported | N/A |
Network speed display | Reports real-time network speed for the player instance. | Supported | Supported | Supported | Supported | Supported [^17] |
UI components | Provides a complete UI for direct use. | Supported | Supported | Supported | Not supported | Supported |
Value-added features
To use these features, first submit a ticket to apply for a trial or purchase the value-added service.
Feature | Description | Android | iOS | Flutter | HarmonyOS | Web |
H.265/H.266 video playback on the web | Plays H.265-encoded and H.266-encoded video streams. Supports switching between software and hardware decoding. Advanced features. To activate, submit a ticket or contact an Alibaba Cloud business manager. | Not supported | Not supported | Not supported | Not supported | Supported |
Footnotes
[^1]: Some mobile clients do not support FLV. [^2]: RTMP is not supported. Some mobile clients do not support FLV. [^3]: Software or hardware decoding depends on browser settings. [^4]: Software or hardware decoding depends on browser settings. Requires activation. Value-added features. [^5]: Requires the H.266 decoding plugin. [^6]: Requires the H.266 decoding plugin. [^7]: Not supported for MP4. Partially supported for HLS and DASH. [^8]: Depends on browser support. Can I use http2? [^9]: Depends on browser support. Can I use http3? [^10]: Provides millisecond-level accuracy. [^11]: Seamless switching is supported for HLS and DASH. [^12]: Supports VTT subtitles. [^13]: Supports SRT, SSA, ASS, and VTT subtitles. [^14]: Subtitle text parsing only. [^15]: Supported by some browsers. Feature compatibility. [^16]: The Free Edition allows querying data from the last 3 days. [^17]: Supported only for Real-Time Streaming (RTS).