📦CarGuo / GSYVideoPlayer
← 返回首页
Video players (IJKplayer, ExoPlayer, MediaPlayer), HTTPS, 16k page size, danmaku (bullet chat) support, external subtitles, support for filters, watermarks, and GIF screenshots, pre-roll and mid-roll ads, multiple simultaneous playback, basic seeking/dragging, volume and brightness adjustment, play-while-cache support
⚖️ Apache-2.0#android#video#player#ijkplayer#ffmpeg📅 创建于 2016-11-13🔄 更新于 2026-10-10

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有

中文文档

Supports IJKPlayer, Media3(EXOPlayer2), MediaPlayer, AliPlayer, implementing a multi-functional video player. (Please read the following instructions carefully, most questions can be answered below).

* HarmonyOS version openharmony-tpc/GSYVideoPlayer

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.

Maven Central Version Build Status Github Actions

GitHub stars GitHub forks GitHub issues GitHub License

Star

Official Account Juejin Zhihu CSDN Jianshu
GSYTech Click me Click me Click me Click me

--------------Demo APK Download Address---------------

I. Using Dependencies

There are currently three hosting methods:

  • MavenCentral: Available after version 11.0.0, all base class packages are published and hosted here.
  • Github Package: Available from version 9.1.0, but before version 11.0.0, the basic dependencies of GSYIjkJava are still hosted on jitpack.
  • Jitpack IO: Will continue to be released, but there is a random loss of packages on the hosting platform.

--- Version Update Instructions --- .

--- Recent Playback Features --- .

ABI and dependency selection in v14.0.0

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.

1. MavenCentral Reference (Recommended)

Since jitpack keeps losing packages, it has been migrated to MavenCentral. The usage is as follows:

First Add

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.

A. Direct Introduction

 //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'

B. Add java and the so support you want:

 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'

C. Modular setup with all three migrated ABIs

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'

D. Jetpack Compose Support (Optional)

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

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR