
If cloning is too slow or images are not visible, you can try to synchronize from the following addresses
- GitCode https://gitcode.com/ZuoYueLiang/GSYVideoPlayer
- Gitee:https://gitee.com/CarGuo/GSYVideoPlayer
| Type | Function |
|---|---|
| Cache | Play while caching, using AndroidVideoCache; Media3(ExoPlayer) uses SimpleCache. |
| Protocols | h263\4\5, Https, concat, rtsp, hls, rtmp, crypto, mpeg, etc. (ijk mode format support) |
| Filters | Basic filters, watermarks, multi-screen playback, multi-pass Gaussian/pyramid blur, Bloom, LUT grading, beauty, Glitch, CRT and analog-TV interference. Details. |
| Frame images | Video first frame, video frame screenshots, composed player screenshots including UI, and video to gif function. |
| Playback | List playback, continuous list playback, gravity rotation and manual rotation, video's own rotation attribute, fast and slow playback, network video loading speed. |
| Screen | Adjust display ratio: default, 16:9, 4:3, fill; rotate screen angle during playback (0,90,180,270); mirror rotation. |
| Kernel | IJKPlayer, Media3(EXOPlayer), MediaPlayer, AliPlayer switching, custom kernel |
| Layout | Full screen and non-full screen two sets of layout switching, pure playback support without any operation controls, barrage function, inherited custom any layout. |
| Playback | Singleton playback, multiple simultaneous playback, video list sliding automatic playback, seamless playback of list switching detail pages. |
| Window | Small window, small window playback in multiple windows (including desktop). |
| Ads | Opening ads, skip ad support, interstitial ad function. |
| Subtitles | Unified external subtitle overlay supports SRT/WebVTT across IJK, Media3(EXOPlayer), and MediaPlayer; Media3 embedded cues can bridge to the same UI. |
| Dash | Media3(exo2) mode supports dash; the demo supports HLS master / DASH MPD adaptive quality track switching. |
| Stream | Supports metadata playback |
| Adapt 16k | ex_so and arm64/x64 adapt to 16K Page Size |
| openssl | Currently ex_so and arm64/armv7a/x64 all use OpenSSL 3.5.9 |
| FFmpeg | Currently ex_so and arm64/armv7a/x64 (arm64-v8a / armeabi-v7a / x86_64) all use FFmpeg n5.1.10 |
| FFmpeg | Currently ex_so and arm64/armv7a/x64 (arm64-v8a / armeabi-v7a / x86_64) all support G711a(pcm_alaw) |
| Cast | Optional gsyvideoplayer-cast DLNA/UPnP module built on jUPnP 3.0.3; the core keeps only the protocol-neutral CastCapability / CastProvider / CastSession SPI and does not pull Jetty. Details. |
| More | No black screen when pausing front and back switching; multi-URL quality switching; Exo HLS/DASH adaptive quality; seamless switching support; keep-last-frame demo; WebVTT progress bar preview. |
| Customization | Customizable rendering layer, custom management layer, custom playback layer (control layer), custom cache layer. |
| Foldables | XML / Compose FLAT, BOOK and TABLETOP split/fullscreen demos using FoldingFeature hinge information. |
| Official Account | Juejin | Zhihu | CSDN | Jianshu |
|---|---|---|---|---|
| GSYTech | Click me | Click me | Click me | Click me |
There are currently three hosting methods:
The gsyvideoplayer aggregate already includes Java, Exo2 and ex_so. For modular IJK setup, choose ex_so or the required standalone ABI modules; do not include two native sets for the same ABI.
| Native artifact | ABI | Native libraries in this release |
|---|---|---|
gsyvideoplayer-ex_so |
arm64-v8a / armeabi-v7a / x86_64 |
FFmpeg n5.1.10 + OpenSSL 3.5.9 |
gsyvideoplayer-arm64 |
arm64-v8a |
Identical to the matching ex_so tuple |
gsyvideoplayer-armv7a |
armeabi-v7a |
Identical to the matching ex_so tuple |
gsyvideoplayer-x64 |
x86_64 |
Identical to the matching ex_so tuple |
gsyvideoplayer-armv5 / gsyvideoplayer-x86 |
Legacy armeabi / x86 |
Historical libraries, not upgraded to FFmpeg 5; explicit legacy use only |
Migrated standalone modules and ex_so share codec/protocol configuration. Choose by ABI and package size, rather than the former standard/extended MPEG distinction. Add compose, cast and aliplay only as needed; cast requires API 26, while the core requires API 23. See DECODERS_EN.md and BUILD_SO_EN.md.
Since jitpack keeps losing packages, it has been migrated to MavenCentral. The usage is as follows:
allprojects {
repositories {
///...
mavenCentral()
maven { url "https://maven.aliyun.com/repository/public" }
}
}
You can choose one of the following three and add it to the build.gradle under the module.
//Complete version introduction
implementation 'io.github.carguo:gsyvideoplayer:14.0.0'
//Whether AliPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-aliplay:14.0.0'
//Whether DLNA/UPnP casting is needed (optional, minSdk 26)
implementation 'io.github.carguo:gsyvideoplayer-cast:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-java:14.0.0'
//Whether ExoPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-exo2:14.0.0'
//Optional direct RTMP module; exo2 already exposes it transitively
implementation 'io.github.carguo:gsyvideoplayer-rtmp:14.0.0'
//Optional DLNA/UPnP cast implementation (minSdk 26); the default player does not include Jetty
implementation 'io.github.carguo:gsyvideoplayer-cast:14.0.0'
//Whether AliPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-aliplay:14.0.0'
//Select required ABIs; do not also add ex_so
implementation 'io.github.carguo:gsyvideoplayer-arm64:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-armv7a:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-x64:14.0.0'
ex_so bundles all three migrated ABIs with the same codec configuration as the standalone modules in B. Select B when only a subset of ABIs is needed.
implementation 'io.github.carguo:gsyvideoplayer-java:14.0.0'
//Whether ExoPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-exo2:14.0.0'
//Whether AliPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-aliplay:14.0.0'
//IJK native libraries for the three migrated ABIs
implementation 'io.github.carguo:gsyvideoplayer-ex_so:14.0.0'
The gsyvideoplayer-compose module is published with v13.1.0. It can be consumed from Maven Central / GitHub Packages like the other modules, or by depending on the source module directly with implementation project(":gsyVideoPlayer-compose") when working inside this repository.
🛠 Toolchain note: the Compose module is verified on JDK 21 in CI (
.github/workflows/*.yml—actions/setup-java
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|