ApsaraVideo Player SDK is part of ApsaraVideo MediaBox SDK that supports video-on-demand (VOD) and live streaming. You can use ApsaraVideo Player SDK on multiple platforms such as Web, Android, iOS, Flutter, Windows, and macOS. This topic describes the features of ApsaraVideo Player SDK.
Basic features
This topic describes the basic features of ApsaraVideo Player SDKs for Web, Android, and iOS.
Playback protocols and formats
Feature | Description | Web | Android | iOS |
Video-on-demand (VOD) playback | Play audio and video files in common formats such as FLV, HLS, MP4, and MP3 on demand. | Supported | Supported | Supported |
Live streaming | Play live streams in common formats such as RTMP, FLV, and HLS. | Only the RTMP protocol is not supported. | Supported | Supported |
Time shifting | Support time shifting. You can specify the start, end, and current playback time, and seek to the specified point in time. | Supported | Supported | Supported |
H.264 encoding | Play H.264 video streams and switch between hardware and software decoding. | Supported | Supported | Supported |
H.265 encoding | Play H.265 video streams and switch between hardware and software decoding. | Supported after you submit an application. For more information, see Value-added services. | Supported | Supported |
H.266 encoding | Play H.266 video streams. | 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. |
Real-Time Streaming (RTS) | Use RTS to provide live streaming services that feature high concurrency, low stuttering, and millisecond-level latency. | ️️️Supported | Supported | Supported |
Low-latency streaming | Support low-latency streaming based on Low-latency HLS (LL-HLS) and Dynamic Adaptive Streaming over HTTP (DASH). | Only live streaming based on LL-HLS is supported. | Supported | Supported |
DASH | Play video streams that are packaged by using DASH. For example, you can play video files that are encapsulated by using SegmentBase and SegmentTemplate. | Supported | Supported | Supported |
High dynamic range (HDR) video playback | Play videos in multiple HDR formats such as HDR10 and HLG. | Not supported | Supported | Supported |
URL-based playback | Play online or local videos based on URLs. | Supported | Supported | Supported |
VID-based playback | Play videos based on VID, such as VidAuth and VidSts. You can specify the URLs of video streams in multiple definitions for a video at a time. | Supported | Supported | Supported |
Supplemental enhancement information (SEI) | Read SEI messages. | Supported | Supported | Supported |
Network protocols
Feature | Description | Web | Android | iOS |
Custom headers | Include a custom HTTP header in a request to request audio and video resources. | Supported | Supported | Supported |
HTTPDNS | Use HTTPDNS to prevent DNS hijacking. | Not supported | Supported | Supported |
HTTP/2 | Use HTTP/2 to significantly improve web performance and reduce latency. You can use HTTP/2 to enable features such as binary framing, multiplexing, and header compression. | For more information about the browsers that support HTTP/2, see HTTP/2 protocol. | Supported | Supported |
HTTP/3 | Use HTTP/3 to accelerate content delivery based on the Quick UDP Internet Connections (QUIC) protocol. | For more information about the browsers that support HTTP/3, see HTTP/3 protocol. | Supported | Supported |
Playback control
Feature | Description | Web | Android | iOS |
Basic control | Perform basic playback control operations such as start, stop, pause, video seeking, and autoplay. | Supported | Supported | Supported |
seek | Drag the slider on the progress bar to the specified point in time. You can use gestures to control the video seeking on the UI. You can experience quick seeking and retain the cached video content during seeking. | Supported | Supported | Supported |
Precise seeking | Seek to a specified frame in a video. | Precise seeking in milliseconds is supported. | Supported | Supported |
Seek in cache | Seek to a specified position in cache without clearing the cached content. | Not supported | Supported | Supported |
Resume playback | Specify a point in time to resume playback. | Supported | Supported | Supported |
Loop playback | Loop an audio or video file. | Supported | Supported | Supported |
List playback | Use the list playback feature to play short videos. This accelerates video loading. | Supported | Supported | Supported |
Playback at different speeds | Adjust the playback speed. The audio pitch remains unchanged at different playback speeds. | Supported. You can specify a playback speed in the range of 0.5× to 2×. | Supported. You can specify a playback speed in the range of 0.5× to 5×. | Supported. You can specify a playback speed in the range of 0.5× to 5×. |
Manual definition switching | Switch video streams among different definitions. | Supported | Supported | Supported |
Seamless definition switching | Seamlessly switch among multiple live streams in different definitions during playback. This improves the playback experience. | Not supported | Supported | Supported |
Audio track switching | Switch among multiple audio tracks during playback. | Supported | Supported | Supported |
Snapshot capture | Capture the current frame of a video and save the frame as a static image. | This feature may be unavailable on specific platforms or when you use specific playback modes. For more information, see Enable the snapshot feature. | Supported | Supported |
Screen lock | Lock the screen orientation and hide UI elements. | Not supported | Supported | Supported |
Video effects
Feature | Description | Web | Android | iOS |
Video image resizing | Pad and crop images. | Supported | Supported | Supported |
Video image rotation | Set the rotation angle of video images to 0°, 90°, 180°, or 270°. | Supported | Supported | Supported |
Mirroring mode | Use one of the following mirroring modes: no mirroring, horizontal mirroring, and vertical mirroring. | Supported | Supported | Supported |
Brightness adjustment | Adjust the screen brightness. You can use gestures to adjust the brightness on the UI. | Not supported | Supported | Supported |
Custom player size | Configure custom settings for the width and height of the player. | Supported | Supported | Supported |
Picture-in-picture (PiP) | Play videos in the PiP mode. | Supported | Supported | Supported. iOS 14 or earlier does not support the PiP mode. |
Audio effects
Feature | Description | Web | Android | iOS |
Volume adjustment | Call the API to adjust the volume of a video. | Supported | Supported | Supported |
Mute mode | Enable or disable the mute feature. | Supported | Supported | Supported |
Audio-only playback | 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 |
Background playback | Continue playing audio streams when the application is switched from the UI to the background. | Supported | Supported | Supported |
Playback performance
Feature | Description | Web | Android | iOS |
Retry of playback upon failures | Perform automatic retries once the playback fails. | Supported | Supported | Supported |
Automatic reconnection | Perform automatic reconnection during live streaming. | Supported | Supported | Supported |
Local caching | Download the video to local devices during video playback. This allows you to play short videos in a loop and reduces traffic consumption. | Not supported | Supported | Supported |
Preloading | Preload videos to accelerate the startup of video playback. This feature is an enhancement of the local caching feature. | Supported | Supported | Supported |
Multi-player playback | Add multiple players on one UI to simultaneously play videos. | Supported | Supported | Supported |
Adaptive bitrate streaming | Perform seamless multi-bitrate switching of live streams in the HLS and DASH formats. | Supported | Supported | Supported |
Dynamic frame synchronization | Perform dynamic frame synchronization for live streaming to reduce latency. | Supported | Supported | Supported |
Interactive features
Feature | Description | Web | Android | iOS |
Subtitles | Import custom subtitle files. | Only subtitles in the VTT format are supported. | Subtitles in the SRT, SSA, ASS, and VTT formats are supported. | Subtitles in the SRT, SSA, ASS, and VTT formats are supported. |
Video security
Feature | Description | Web | Android | iOS |
Referer blacklist or whitelist | Identify the source of a playback request based on the Referer and filter the requests based on the blacklist or whitelist configurations. | Supported | Supported | Supported |
HLS encryption | Play streams encrypted based on the HLS AES-128 standard. | Supported | Supported | Supported |
Alibaba Cloud proprietary cryptography | Encrypt videos by using Alibaba Cloud proprietary cryptography to prevent video leaks and hotlinking. | For more information about the browsers that support HTML5, see Browsers supported by the HTML5 player. | Supported | Supported |
Secure download | Use the specified application to download and encrypt videos. | Not supported | Supported | Supported |
DRM encryption | Encrypt videos based on Widevine DRM and FairPlay DRM. | Supported | Supported | Supported |
Quality monitoring
Feature | Description | Web | Android | iOS |
Log reporting | Collect tracking information about VOD playback and live streaming and report SDK logs. | Supported | Supported | Supported |
Playback exception troubleshooting | Identify and handle playback exceptions by specifying the user or playback session. | Supported. You can use the free edition to query data in the last three days. | Supported. You can use the free edition to query data in the last three days. | Supported. You can use the free edition to query data in the last three days. |
Data dashboard | View macro statistics such as the numbers of playback requests and users. | Supported. You can use the free edition to query data in the last three days. | Supported. You can use the free edition to query data in the last three days. | Supported. You can use the free edition to query data in the last three days. |
Development support
Feature | Description | Web | Android | iOS |
Data output during audio and video rendering | Export pulse-code modulation (PCM) and YUV data during rendering. | Not supported | Supported | Supported |
Event callbacks | Configure callbacks for the playback status, the first audio or video frame that is played, the completion of playback, and playback failures. | Supported | Supported | Supported |
Decoding blacklist | Configure a blacklist for hardware decoding. | Supported | Supported | Supported |
Network speed display | Report the network speed of a player instance in real time. | Only RTS is supported. | Supported | Supported |
UI components | Use the built-in UI components based on your business requirements. | Supported | Supported | Supported |
Value-added services
This topic describes the value-added services of ApsaraVideo Player SDKs for Web, Android, and iOS. To activate value-added services, submit a ticket.
Feature | Description | Web | Android | iOS |
H.265 video playback | Play H.265 videos to improve the playback performance. Compared with playing H.264 videos, H.265 videos consumes less bandwidth. Note To play H.265 videos on web browsers, submit a ticket or contact your Alibaba Cloud account manager. | Supported | Supported | Supported |
H.266 video playback | Play H.266 videos to improve the playback performance. Compared with playing H.264 or H.265 videos, H.266 videos consumes less bandwidth. Note To play H.266 videos, submit a ticket or contact your Alibaba Cloud account manager. | Supported | Supported | Supported |
Advanced adaptive bitrate streaming (ABR) policies | Compared with the general ABR policy, this feature better adapts to multi-bitrate HLS or DASH video streams, significantly reduces the stuttering rate, and improves the average playback bitrate. | Not supported | Supported | Supported |
Virtual reality (VR) panoramic playback | Play panoramic videos, use gestures, gravity sensors, and the gyroscope. | Not supported | Supported | Supported |
On-device super resolution | 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 the playback experience. This helps reduce the video transmission cost. | Not supported | Supported | Supported |
Sharpening | Sharpen the image and highlight the details to improve the definition. | Not supported | Supported | Supported |
Frame interpolation | Use frame interpolation to fix stuttering when you play low-bitrate videos for a smooth playback experience. | Not supported | Supported | Supported |
Audio enhancement | Use Dolby Atmos and spatial audio technologies to provide an immersive user experience. | Not supported | Supported | Supported |
Enhanced HTTPDNS | Use Alibaba Cloud CDN to implement precise scheduling and ensure that the real-time domain resolution results immediately take effect. This improves the 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. | Not supported | Supported | Supported |