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, 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, and iOS. In the following tables, ✔️ indicates that the feature is supported and ❌ indicates that the feature is not supported.
Table 1: Playback protocols and formats
Feature | Description | Web | Android | iOS |
VOD playback | Supports common audio and video formats in VOD scenarios, such as Flash Video (FLV), HTTP Live Streaming (HLS), MP4, and MP3. | ✔️ | ✔️ | ✔️ |
Live stream playback | Supports common audio and video formats in live streaming scenarios, such as Real-Time Messaging Protocol (RTMP), FLV, and HLS. | Supports only FLV and HLS. | ✔️ | ✔️ |
Time shifting during live streaming | 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. | ✔️ | ✔️ | ✔️ |
H.264 coding | Allows you to play video streams encoded in the H.264 format and switch between hardware and software decoding. | ✔️ | ✔️ | ✔️ |
H.265 coding | Allows you to play video streams encoded in the H.265 format and switch between hardware and software decoding. | For more information, see the Value-added features section of this topic. | ✔️ | ✔️ |
H.266 coding | Allows you to play video streams encoded in the H.266 format. | ❌ | ✔️ | ✔️ |
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). | Supports only LL-HLS. | ✔️ | ✔️ |
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. | ❌ | ✔️ | ✔️ |
High dynamic range (HDR) video playback | Supports multiple HDR formats such as HDR10 and hybrid log-gamma (HLG). | ❌ | ✔️ | ✔️ |
URL-based playback | Supports the URL-based playback of online videos or local videos. | ✔️ | ✔️ | ✔️ |
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. | ✔️ | ✔️ | ✔️ |
Table 2: Network protocols
Feature | Description | Web | Android | iOS |
Custom headers | Allows you to customize HTTP headers when you request audio and video resources. | ✔️ | ✔️ | ✔️ |
HTTPDNS | Supports HTTPDNS to prevent Domain Name System (DNS) hijacking. | ❌ | ✔️ | ✔️ |
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. | 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. | Depends on whether your browser supports HTTP/3. For more information, see Can I use http3? | ✔️ | ✔️ |
Table 3: Playback control
Feature | Description | Web | Android | iOS |
Playback control | Supports playback control features, including start, stop, pause, video seeking, and autoplay. | ✔️ | ✔️ | ✔️ |
Video seeking | Allows you to drag the slider in the progress bar to a specific point in time. You can use gestures to adjust the slider on the user interface (UI). You can perform quick seeking and retain the cached video content during seeking. | ✔️ | ✔️ | ✔️ |
Precise seeking | Supports video seeking to a specific frame. | Supports precise seeking in milliseconds. | ✔️ | ✔️ |
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 after the playback of an audio file or video file ends. | ✔️ | ✔️ | ✔️ |
List playback | Supports list playback for short videos to improve the loading speed. | ✔️ | ✔️ | ✔️ |
Configurable playback speeds | Allows you to change the playback speed. The audio pitch remains unchanged at different playback speeds. | ✔️. You can change the playback speed in a range of 0.5× to 2×. | ✔️. You can change the playback speed in a range of 0.5× to 5×. | ✔️. You can change the playback speed in a range of 0.5× to 5×. |
Manual definition switching | Allows you to switch video streams between different definitions in VOD scenarios. | ✔️ | ✔️ | ✔️ |
Seamless resolution switching | Allows you to seamlessly switch live streams between different resolutions to improve playback experience when you use Alibaba Cloud streaming URLs. | ❌ | ✔️ | ✔️ |
Audio track switching | Allows you to switch among 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. | Varies based on the platform and playback mode. For more information, see Enable the snapshot feature. | ✔️ | ✔️ |
Screen lock | Allows you to lock the screen orientation and hide UI elements. | ❌ | ✔️ | ✔️ |
Table 4: Video effects
Feature | Description | Web | Android | iOS |
Video image resizing | Supports image padding and cropping. | ✔️ | ✔️ | ✔️ |
Video image rotation | Supports the following rendering angles for video images: 0°, 90°, 180°, and 270°. | ✔️ | ✔️ | ✔️ |
Mirroring mode | Supports the following mirroring modes: no mirroring, horizontal mirroring, and vertical mirroring. | ✔️ | ✔️ | ✔️ |
Brightness change | Allows you to change the screen brightness. You can use gestures to change the brightness on the UI. | ❌ | ✔️ | ✔️ |
Custom player size | Supports custom settings for the width and height of the player. | ✔️ | ✔️ | ✔️ |
Picture-in-picture (PiP) | Supports video playback in PiP mode. | ✔️ | ✔️ | ✔️. Playback in PiP mode is not supported for iOS 14 and earlier. |
Table 5: Audio effects
Feature | Description | Web | Android | iOS |
Volume change | Allows you to change the volume of a video during playback. | ✔️ | ✔️ | ✔️ |
Mute mode | Allows you to enable or disable the mute mode. | ✔️ | ✔️ | ✔️ |
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. | ✔️ | ✔️ | ✔️ |
Background playback | Allows you to continue playing audio streams when the application is switched from the UI to the background. | ✔️ | ✔️ | ✔️ |
Table 6: Playback performance
Feature | Description | Web | Android | iOS |
Retry of playback upon failures | Supports automatic retries that are triggered after the playback fails. | ✔️ | ✔️ | ✔️ |
Automatic reconnection | Supports automatic reconnection during live streaming. | ✔️ | ✔️ | ✔️ |
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. | ❌ | ✔️ | ✔️ |
Preloading | Preloads videos to accelerate the startup of video playback. This feature is an optimization of the local caching feature. | ✔️ | ✔️ | ✔️ |
Multi-player playback | Allows you to add multiple players on one UI to simultaneously play videos. | ✔️ | ✔️ | ✔️ |
Network-adaptive playback of multi-bitrate video streams | Supports the seamless multi-bitrate switching of live streams in the HLS and DASH formats. | Supports multi-bitrate switching only for live streams in the HLS format. | ✔️ | ✔️ |
Dynamic frame synchronization | Supports dynamic frame synchronization for live streaming to reduce latency. | ✔️ | ✔️ | ✔️ |
Table 7: Interactive features
Feature | Description | Web | Android | iOS |
Subtitles | Allows you to import custom subtitle files. | ✔️. Only Video Text Tracks (VTT) subtitle files are supported. | ✔️. 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. |
Table 8: Video security
Feature | Description | Web | Android | iOS |
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. | ✔️ | ✔️ | ✔️ |
HLS encryption | Supports playback for streams that are encrypted based on the HLS AES-128 standard. | ✔️ | ✔️ | ✔️ |
Alibaba Cloud proprietary cryptography | Supports Alibaba Cloud proprietary cryptography to prevent video leaks and hotlinking. | ❌ | ✔️ | ✔️ |
Secure download | Allows you to use the specified application to download and encrypt videos. | ❌ | ✔️ | ✔️ |
Digital rights management (DRM) encryption | Supports DRM encryption, including Widevine DRM encryption and FairPlay DRM encryption. | ✔️ | ✔️ | ✔️ |
Table 9: Quality monitoring
Feature | Description | Web | Android | iOS |
Log reporting | Allows you to collect tracking information about VOD playback and live streaming 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 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. |
Table 10: Development support
Feature | Description | Web | Android | iOS |
Data output during audio rendering and video 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 audio frame or video frame, the completion of playback, and playback failures. | ✔️ | ✔️ | ✔️ |
Decoding blacklist | Allows you to configure a blacklist for hardware decoding. | ✔️ | ✔️ | ✔️ |
Network speed display | Supports the reporting feature that reports the network speed of a player in real time. | Supports this feature only for RTS. | ✔️ | ✔️ |
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, and iOS. You must log on to the ApsaraVideo Live or ApsaraVideo VOD console to apply for a trial or purchase features for your application. In the following table, ✔️ indicates that the feature is supported and ❌ indicates that the feature is not supported.
Feature | Description | Web | Android | iOS |
H.265 video playback in web browsers | Supports the playback of video streams encoded in the H.265 format in web browsers. This consumes less bandwidth and delivers better playback performance than the playback of video streams encoded in the H.264 format. | ✔️ | ❌ | ❌ |
Screen mirroring | Supports screen mirroring among devices that are connected to the same network based on the Digital Living Network Alliance (DLNA) protocol. Common playback control features are supported for screen mirroring. | ❌ | ✔️ | ✔️ |
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. | ❌ | ✔️ | ✔️ |
Virtual reality (VR) panoramic playback | Allows you to play panoramic videos and use gestures, a gyroscope, and a gravity sensor. | ❌ | ✔️ | ✔️ |
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. | ❌ | ✔️ | ✔️ |
Sharpening | Allows you to sharpen the image and highlight the details to improve playback experience. | ❌ | ✔️ | ✔️ |
Frame interpolation | Allows you to use frame interpolation to fix stuttering when you play low-bitrate videos. This ensures smooth playback experience. | ❌ | ✔️ | ✔️ |
Audio enhancement | Allows you to use Dolby Atmos and spatial audio technologies to provide immersive user experience. | ❌ | ✔️ | ✔️ |
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 request on Yida 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. | ❌ | ✔️ | ✔️ |