Skip to content

iOSDevLog/RedPlayer

 
 

Repository files navigation

redplayer

示例图片

GitHub release (latest by date including pre-releases) GitHub license

Platform Build Status
Android Done
iOS Done
others In Coming

Quickstart/Demo

Features

Function Function Description Current Support Situation Other Notes
Rich Format Supports rich audio and video formats such as FLV, HLS, MP4, MP3, and Vorbis
DASH Protocol Supports standard protocol DASH Optimized version of DASH for on-demand support in the later stage
HDR Supports multiple HDR formats such as HDR10/HLG. Distribution and playback support are provided according to the model
URL Playback Supports playback of local and network videos via URL
Log Reporting Supports reporting player logs and statistics related to playback point information
Abnormal Analysis Supports obtaining corresponding abnormal information through log analysis
H.264 Playback & Hardware Decoding Supports H.264 video sources and hardware decoding
H.265 Playback & Hardware Decoding Supports H.265 video sources and hardware decoding Software decoding capabilities will be supported in the later stage
Automatic switching between software and hardware decoding Automatically switches to software decoding when the terminal does not support hardware decoding
Playback Control Supports playback control functions such as start, end, pause, and resume
Accurate Seeking Supports accurate seeking to a specified position, which can be accurate to the frame level
Dynamic Dropping Start dynamic dropping when the frame rate exceeds 60 fps
Replay Supports manually triggered replay after the video ends
Continue playing Supports setting the continuous playing time point
Loop Playback Supports automatic replay after video playback ends Parameter configuration is required
Variable Speed Playback Supports variable speed playback of 0.5-2 times, and the audio实现variable speed without changing the pitch
Definition Adjustment Supports switching between multiple definitions for on-demand and transcoding
Seeking within the Cache Supports seeking without clearing the buffer for cached video content
Packing Mode Supports picture cropping and filling
Private DRM Supports private DRM encryption schemes
Adaptive Bitrate When playing HLS/DASH, it supports automatically selecting the definition for playback through bandwidth prediction Currently only supports selection before playback, and does not support abr during playback
Volume Settings Supports real-time adjustment of system volume and mute operation
Pure Audio Playback Supports playing audio only
Preload Supports setting the preload size to reduce the time spent on the first screen
Play While Downloading Supports playing while caching and downloading subsequent content, and you can set network policies
Playback Callback Supports playback status callback, first frame callback, playback completion or failure callback
Retry on Playback Failure Automatically retries on playback failure Only supports retries for non-4XX and 5XX classes
Real-time Download Speed Supports getting real-time download speed Will be supported in later versions
Encrypted Streaming PlayBack Support for on-demand transcoding of encrypted streams Need for custom development
Screenshot Function Support for capturing any frame of the playback picture Will be supported in later versions
Thumbnail Preview Support for previewing progress bar thumbnails (sprite map) Related to business, not currently supported
Set player size Support for customizing the width and height of the player Will be supported in later versions
External subtitles Support for two docking modes of external subtitles: full-link solution and pure client solution Will be supported in later versions
Client super-resolution The client performs super-resolution enhancement on low-quality videos Will be supported in later versions
H.266 playback Support for video playback in H.266 encoding format Will be supported in later versions
AV1 playback Support for video playback in AV1 encoding format Will be supported in later versions

Open Content

# Describe the main contents of current open source and the estimated time and contents of the next open source

Usage

  • You can directly integrate your project by calling the interface or compile independently.
  • INTERFACES.md

Build Environment

  • Install Homebrew & Git

     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
     brew install git
  • Build Android

    Using Android SDK

    Andrioid SDK is android project base dependency. You should download and then config with the following command:

     # add this line to your ~/.bash_profile or ~/.profile, the android sdk will work
     export ANDROID_SDK=<your sdk path>
     
     # My build environment:
     # macOS 14.0
     # Android Studio Flamingo | 2022.2.1 Patch 2
     # gradle version: 7.5.0
  • Build iOS

    Using CocoaPods

    CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

     $ gem install cocoapods
     
     # My build environment:
     # macOS 14.0
     # Xcode 15.2 (15C500b)
     # Cocoapods version: 1.10.2
     # Ruby 3.0.6p216

Latest Changes

Support

Licence

Self Licence

Copyright (c) 2024 xiaohongshu
Licensed under LGPLv2.1 or later

Dependence Licence

  • ffmpeg: LGPL v2.1+
  • soundtouch: LGPL v2.1
  • libcurl: MIT License
  • c-ares: MIT License
  • glide: MIT License
  • Masonry: MIT License
  • openssl: Apache License 2.0
  • PictureSelector: Apache License 2.0

Law And Rule

All rights and explanations belong to Xiaohongshu,you should always ask your lawyer for these stuffs before use it in your product.

Releases

No releases published

Packages

No packages published

Languages

  • Java 44.2%
  • Kotlin 20.8%
  • Objective-C 19.7%
  • Swift 14.6%
  • Ruby 0.7%