Feature Module | Feature | Description | Web | iOS and Android | Flutter |
Playback protocol/format | Video-on-demand and live playback | Supports both video-on-demand and live playback capabilities. | ✓ | ✓ | ✓ |
| Live playback formats | Supports live video streaming formats such as RTMP, FLV, HLS, DASH, and WebRTC. | WebRTC, FLV, HLS, and DASH | RTMP, FLV, HLS, and WebRTC | RTMP, FLV, HLS, and WebRTC |
| Video-on-demand playback formats | Supports video-on-demand audio/video formats such as HLS, DASH, MP4, and MP3. | HLS, MP4, MP3, FLV, and DASH | MP4, MP3, HLS, and DASH | MP4, MP3, and HLS |
| URL playback | Play back online videos via their URLs. A URL can be a VOD playback address or the pull address of a live stream. | ✓ | ✓ | ✓ |
| File ID playback | Play back videos via their `FileID` (VOD file ID). The stream of a `FileID` contains videos with multiple definitions, thumbnails, timestamps, and other information. | ✓ | ✓ | ✓ |
| Local video playback | Play back video files saved locally. | - | ✓ | ✓ |
| Play back LEB videos with millisecond latency. | ✓ | ✓ | ✓ | |
| DASH protocol | Play back videos over the standard DASH protocol. | ✓ | ✓ | × |
| QUIC-based acceleration | Use the QUIC transfer protocol to make the video transfer more efficient. | - | ✓ | ✓ |
| SDR/HDR video playback | Play back SDR videos and HDR videos in HDR 10 and HLG standards. | - | ✓ | ✓ |
| H.264 video playback and software and hardware decoding | Play back H.264 video sources and support software and hardware decoding. | ✓ | ✓ | ✓ |
| H.265 video hardware decoding | Decode H.265 video sources based on hardware. | - | ✓ | ✓ |
| AV1 | Play back AV1 videos. | Partially
supported | Partially
supported | Partially
supported |
| Audio playback | Play back MP3 and other audio files. | ✓ | ✓ | ✓ |
| Dual-channel audio | Support dual-channel audio playback. | × | ✓ | ✓ |
| Multi-track | Supports playback of video files with multiple tracks, allowing switching between tracks, such as switching from English to Chinese. | ✓ | ✓ | × |
| HTTP header settings | Use custom HTTP headers when requesting video data. | × | ✓ | ✓ |
| Support for HTTPS | Play HTTPS videos. | ✓ | ✓ | ✓ |
| HTTP 2.0 | Support the HTTP/2 protocol. | ✓ | ✓ | ✓ |
Playback performance | Predownloading | Preownload the content of a video file in advance and configure the size and resolution of the files to be predownloaded. Predownload can greatly reduce the time to first frame (TTFF) and is optimized to reduce the energy consumption of the playback device and deliver a higher performance. | ✓ | ✓ | ✓ |
| Buffering during playback | Download and buffer content at the same time when playing back a video to reduce the network usage. Cache policies can be configured. | ✓ | ✓ | ✓ |
| Accurate seek | Play back the media file at the specified time point on the progress bar. Seeking is accurate to the frame in mobile applications and accurate to the millisecond on the web. | ✓ | ✓ | ✓ |
| Adaptive bitrate | Play back adaptive bitrate streaming videos in HLS, DASH, or WebRTC format at the optimal bitrate automatically selected according to the bandwidth. | ✓ | ✓ | ✓ |
| Real-time network download speed | Get the real-time download speed to display it to end users when lag occurs. This is also a prerequisite for implementing the bandwidth prediction module of adaptive bitrate streaming. | ✓ | ✓ | ✓ |
| Multiple instances | Add multiple players on the same page to play videos at the same time. | ✓ | ✓ | ✓ |
| Dynamic frame sync | Catch up the current live streaming progress in a way similar to fast forward when a lag occurs, so as to guarantee the real-timeness of the live stream. | ✓ | × | × |
Playback control | Basic controls | Support playback control features such as start, stop, pause, and resume. | ✓ | ✓ | ✓ |
| Basic picture-in-picture | Play back media in a small window in PiP mode. For a mobile application integrating the SDK, PiP is supported both within the application and out of the application. | ✓ | ✓ | ✓ |
| Advanced picture-in-picture component | Relative to basic picture-in-picture, it adds support for encryption video picture-in-picture, offline playback picture-in-picture, and instant switching effect. | - | ✓ | × |
| Seeking within cache | Support fast seeking without clearing the cached content during seeking. | ✓ | ✓ | ✓ |
| Progress bar marking and thumbnail preview | Mark a point on the progress bar and display a thumbnail sprite of the video at that time point. | ✓ | ✓ | ✓ |
| Thumbnail settings | Add a custom thumbnail to a video | ✓ | ✓ | ✓ |
| Replay, playback loop, and list playback | Manually or automatically replay the video after playback ends.Play back videos in a playlist in sequence, and loop the playlist to play back the first video in the playlist after the last video ends. | ✓ | ✓ | ✓ |
| Checkpoint restart | Start playback at the point where playback previously stopped. | ✓ | ✓ | ✓ |
| Custom playback start time | Specify the start time for playback. | ✓ | ✓ | ✓ |
| Adjustable-speed playback | Play back media at 0.5x–3x speed without affecting the tone of the audio. | ✓ | ✓ | ✓ |
| Background playback | Continue playing back the audio/video even when the application is switched to the background. | - | ✓ | ✓ |
| Playback callback | Callbacks for playback status, first frame rendering, end of playback, and playback failure. | ✓ | ✓ | ✓ |
| Retry upon playback failure | Automatically retry when playback fails and automatically reconnect when connection to a live stream fails. | ✓ | ✓ | ✓ |
| Volume level settings | Adjust the volume level or mute a media file in real time. | ✓ | ✓ | ✓ |
| Definition switch and naming | Smoothly switch between multiple definitions of an HLS video with no lags.Give custom names to different playback resolutions. | ✓ | ✓ | ✓ |
| Screencapturing | Capture a frame from a video. | - | ✓ | x |
| Preview | Allow viewers to watch a preview of a video. | ✓ | ✓ | x |
| On-screen comments | Show on-screen comments during playback. | ✓ | ✓ | x |
| Subtitle overlay | Import subtitle files to add subtitles to videos, WebVTT format is supported on the Web, and VTT and SRT formats are supported on mobile devices. | ✓ | ✓ | x |
Referer blocklist/allowlist | Configure an allowlist/blocklist and using the "Referer" field in a playback request to determine whether to allow or block the request. | ✓ | ✓ | ✓ | |
| Key hotlink protection | Add parameters for validity period, preview time, and max viewer IP count to playback request URLs to protect videos from unauthorized distribution. | ✓ | ✓ | ✓ |
| HLS encryption | Encrypt HLS streams with a key based on AES. | ✓ | ✓ | ✓ |
| Private HLS encryption | Encrypt videos over private VOD protocols in the cloud. The encrypted videos can be decrypted only through the Player SDK for playback, which effectively prevents videos from being decrypted by various browser extensions and cracking tools. | ✓ | ✓ | ✓ |
| Commercial-grade DRM | Provide native encryption solutions such as Apple FairPlay and Google Widevine. | ✓ | ✓ | x |
| Secure download | Download encrypted videos and use the Player SDK to decrypt and play the videos. | - | ✓ | ✓ |
| Dynamic watermarks | Add irregularly moving text watermarks to the player to help deter piracy. | ✓ | ✓ | x |
| Digital watermark | Apply a digital watermark to videos to help identify and trace pirates at low costs. | ✓ | ✓ | ✓ |
| Ghost watermark | Random time, random position, short-lived appearance on the playback interface, and at a time when the watermark is detected to be abnormally removed, the video playback will automatically stop; it can ensure video safety while almost not affecting the viewing experience. | ✓ | x | x |
Display effect | Custom UI | Integration solutions with UIs and common playback components with UIs are provided for you to choose as needed. | ✓ | ✓ | ✓ |
| Screen filling | Specify how videos are fitted to the screen. | ✓ | ✓ | x |
| Player size settings | Customize the player width and height. | ✓ | ✓ | ✓ |
| Roll image | Show an image when playback is paused, which can be used for advertising. | ✓ | ✓ | x |
| Video mirroring | Flip a video horizontally or vertically. | ✓ | ✓ | x |
| Video rotation | Rotate videos by a specific angle (you can specify the `rotate` parameter of a video file to rotate a video automatically). | x | ✓ | x |
| Screen locking | Play videos in an immersive mode (locking the orientation and hiding system bars). | - | ✓ | x |
| Brightness adjustment | Adjust the brightness of a video. | - | ✓ | ✓ |
Was this page helpful?