mrkeyoor.com_
Mon 28 Sept 06:39 UTC
Dev Toolsevaluationupdated 28 Sept 2026

GSYVideoPlayer review

GSYVideoPlayer is an Android video toolkit that wraps IJKPlayer, Media3, Android MediaPlayer, and AliPlayer behind one customizable interface. It handles the playback UI and app behaviors that teams otherwise build themselves, including full-screen transitions, list playback, caching, subtitles, filters, casting, and ads.

Verdict

Our install stage took 70 seconds, but both the build and test commands failed in 10 seconds because the checkout could not find an Android SDK. Use GSYVideoPlayer when your app genuinely needs its cross-engine controls, playback layouts, and native codec options, and budget for device-level testing. Start with AndroidX Media3 when a single engine and a smaller integration surface will do.

We ran it

Lab card: what happened when we ran GSYVideoPlayerScreenshot of GSYVideoPlayer (github.com/CarGuo/GSYVideoPlayer)
Install✓ · 70s
Build✗ · 10s
Tests✗ · 10sran, no count parsed
Repo774 files~68,539 lines of source · 138.7 MB · 3 CI workflows

Answers from our run

Does GSYVideoPlayer build from source?

Dependencies installed in 70 seconds, and the build failed. We cloned commit 1c6bace into a clean Debian container with 3 CPUs and no project-specific setup.

Do GSYVideoPlayer's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use GSYVideoPlayer?

Contributors whose build image lacks the Android SDK: our build and test commands both stopped because Gradle could not find ANDROID_HOME or sdk.dir.

What are the alternatives to GSYVideoPlayer?

AndroidX Media3, VLC for Android. Our install stage took 70 seconds, but both the build and test commands failed in 10 seconds because the checkout could not find an Android SDK.

Setup2/5Install passed; build and tests stopped on a missing Android SDK
Docs4/5Wide English README and demos, but Android tooling is assumed
Community5/521,498 stars, a September 2026 push, and recent issue replies
Maturity4/5v13.2.1 is broad; FFmpeg 4.3 binaries need an explicit decision

Who it’s for

Android teams that need the same player UI across Media3, IJKPlayer, MediaPlayer, or AliPlayer.
Video-heavy apps that need list playback, small windows, full-screen transitions, external subtitles, filters, or pre-roll ads.
Teams maintaining Java or Kotlin screens while adding selected Jetpack Compose surfaces.
Developers prepared to test streams, device models, native codecs, and lifecycle transitions in their own app.

Who it’s NOT for

Contributors whose build image lacks the Android SDK: our build and test commands both stopped because Gradle could not find ANDROID_HOME or sdk.dir.
Apps that must support devices below API 23, or below API 26 when using the optional casting module.
Security teams that cannot accept or audit prebuilt native media libraries: the README identifies FFmpeg 4.3 in ex_so, and open issue 4255 asks for a decision on those binaries without claiming a specific exploit is reachable.
Teams that only need standard Media3 playback and would rather avoid a cross-engine abstraction plus its app-level controls.
Buyers who require a support contract: the README says the project does not provide technical support or accept commercial cooperation.

Setup reality

Our sandbox install stage succeeded in 70 seconds. The build then failed with exit 1 in 10 seconds, and the test command failed with exit 1 in 10 seconds. Both logs stopped while Gradle was resolving :app:compileDebugJavaWithJavac because no Android SDK location was configured.

Working on the repository needs an Android SDK plus ANDROID_HOME or sdk.dir. The Compose module needs JDK 17 or newer. Consuming v13.2.1 from Maven Central avoids GitHub Package credentials, while that package route needs a GitHub token.

The checkout contained 774 files, about 68,539 source lines, and 138.7 MB at commit 1c6bace. Our scan found 3 CI workflow files, no Dockerfile, and no tests directory. Core Media3 artifacts set a minimum API level of 23; the optional casting artifact requires 26.

Four playback engines sit behind one Android UI layer

GSYVideoPlayer v13.2.1 wraps IJKPlayer, AndroidX Media3, Android MediaPlayer, and AliPlayer. The useful part is the behavior built around those engines: full-screen handoffs, list playback, floating windows, rotation, caching, ads, external subtitles, frame capture, and custom controls. If your product team has already written that machinery twice, the library can replace a large patch of app code. If all you need is one HLS screen, the wrapper may be more architecture than the job deserves.

The size of the checkout makes that trade visible. We measured 774 files, about 68,539 lines of source, and 138.7 MB at commit 1c6bace. This is a long-running Android framework with sample applications and several engine modules, rather than a small view around a decoder. You choose the Java layer, the playback kernel, and any ABI-specific native packages. That modularity lets an app avoid some binaries, but it also gives the team more combinations to verify.

v13.2.1 covers jobs that Media3 leaves to the app

The feature list is unusually practical. GSYVideoPlayer supports SRT and WebVTT overlays across three kernels, HLS and DASH quality selection through Media3, WebVTT thumbnail previews, multi-window playback, screenshots, GIF creation, and more than 20 visual filters. Version 13.2.1 moved the jUPnP and Jetty implementation into an optional casting artifact, so the default library no longer brings those pieces into every app. That is a sensible boundary for teams that never cast to a TV.

Compose support arrived as a published module in v13.1.0. It includes a wrapper for StandardGSYVideoPlayer and a controller with state plus one-shot events for native Compose controls. The README points to 24 runnable Compose activities, covering lists, floating windows, subtitles, filters, caching, and ads. Existing View-based code remains underneath. That makes Compose adoption gradual, which is helpful in an older app, though a team seeking a Compose-only playback stack should understand the boundary before committing.

What happened when we ran it

Our sandbox install stage succeeded in 70 seconds. The build failed with exit 1 after 10 seconds, and the test command also failed with exit 1 after 10 seconds. Both log tails reported the same concrete problem: Gradle could not locate an Android SDK through ANDROID_HOME or the repository's local.properties file. The failure happened while it tried to determine dependencies for :app:compileDebugJavaWithJavac. The log also warned that deprecated Gradle features will be incompatible with Gradle 9.0.

We ran commit 1c6bace in an unprivileged container with 3 CPUs and 10 GB of RAM. The 138.7 MB checkout had 3 CI workflow files, no Dockerfile, and no tests directory in our scan. Because Gradle stopped at SDK discovery, our run did not reach Java compilation or test assertions. The honest result is narrower than saying the project is broken: a fresh JVM image was enough for the install stage, but it was not a complete Android build environment.

Maven Central is the shortest route into an app

Version 13.2.1 is available from Maven Central as a complete artifact or as separate Java, Media3, AliPlayer, casting, and ABI packages. That path avoids building the repository and does not need the GitHub Package credentials described in the README. JitPack remains documented, but the project itself warns that historical packages can disappear there. For a new application, Maven Central is the least surprising source and lets the team add only the playback pieces it has chosen to support.

Repository work has a higher floor. The Compose module requires JDK 17 or newer, while its CI uses JDK 21. The core Media3 path now sets minSdk 23, and the optional casting artifact declares minSdk 26. Those numbers can rule out an integration before any code is written. A playback matrix should also name the chosen engine and ABI set, because IJK, Media3, system playback, and AliPlayer do not share identical protocol or caching behavior.

The IJK route ships FFmpeg 4.3 binaries

The README says the ex_so packages use FFmpeg 4.3 and OpenSSL 1.1.1w on arm64 and x86_64. Open issue 4255 examines the committed FFmpeg binaries and asks maintainers to address their age. The reporter explicitly did not establish that a particular vulnerability is reachable in GSYVideoPlayer's reduced build. That distinction matters. The finding is still enough to require a security review when an app parses untrusted files or network streams through the IJK path.

AndroidX Media3 is the cleaner alternative when its protocol and codec support is sufficient. GSYVideoPlayer still has a case for RTMP, custom kernels, filters, or layouts that would otherwise become product code. Its 16 KB page-size work also shows attention to current Android packaging requirements. Choose the IJK modules because a tested stream set needs them, rather than selecting the largest artifact and inheriting native libraries by default.

September 2026 activity is current, while support stays self-service

The repository was pushed on September 28, 2026, and v13.2.1 was released on August 19, 2026. GitHub listed 14 open issues and 2 open pull requests when we fetched it. Recent commits added rendering effects and updated the Gradle wrapper, while a September issue received a maintainer reply the next day. Those signals point to active development even though several long-running support threads remain open. A release tag by itself would tell less than this combination.

GSYVideoPlayer had 21,498 stars when fetched, but popularity does not buy an SLA. The README tells users to reproduce problems in the demo, include the device and Android version, and understand basic codec behavior. It also says the project does not provide technical support. Before adopting it, make a short list of required streams, Android versions, screen transitions, and playback engines. If that list uses the library's extra machinery, test those exact paths. If it does not, Media3 is the easier dependency to defend.

Alternatives

ProjectWhat it isPick it when
AndroidX Media3Google's official Android media libraries, including ExoPlayer and the surrounding playback APIs.pick this instead when one supported playback engine covers the job and you want to own the UI yourself.
VLC for AndroidVideoLAN's Android and Android TV application, built around the VLC playback stack.pick this instead when VLC format coverage or a full player application matters more than GSYVideoPlayer's embeddable Android UI layer.

What people are saying

  1. [velocity-scout] CarGuo/GSYVideoPlayer

Sources

  1. GSYVideoPlayer README at commit 1c6bace
  2. GSYVideoPlayer v13.2.1 release
  3. Open issue 4255 on the bundled FFmpeg version
  4. GSYVideoPlayer repository activity

More dev tools reviews

kitter · flea · sonicloud_opensdk · cn · fyne · agent-manager · the whole board →