Build a video streaming app with HLS or RTMP support without writing media decoding code from scratch.
Add danmaku (scrolling comments) and visual filters to video playback in an existing Android app.
Implement picture-in-picture and floating window video playback alongside pre-roll ads.
Create a media player that automatically rotates video based on device orientation and responds to volume/brightness gestures.
Requires Android Studio and SDK setup; integrating into an existing Android project involves gradle dependency configuration and potential native library compilation for IJKPlayer.
GSYVideoPlayer is an Android video player library written in Java that gives developers a feature-rich, customizable player they can embed into their own apps. Rather than being a standalone video app, it is a building block, a library you add to an Android project so the app can play video without you having to wire up all the low-level media handling yourself. A defining trait is that it supports multiple playback engines under one consistent interface. The engine is the component that actually decodes video; the library lets you choose between IJKPlayer, Media3 (also known as ExoPlayer2), the system MediaPlayer, and AliPlayer, or switch between them, because different engines handle different formats and streaming protocols better. The library supports a broad range of streaming protocols, including HTTPS, HLS, RTSP, RTMP, DASH, and others such as concat and crypto, with HLS and DASH adaptive quality track switching available through the Media3 engine. Beyond plain playback, it bundles features that apps often need but rarely build from scratch: playing a video while caching it to disk for later, danmaku (the scrolling chat-style comments that float over video on East Asian streaming sites), external subtitle overlays in SRT and WebVTT formats, more than twenty visual filters (blur, black and white, mosaic, Gaussian, color filters and so on), watermarks, GIF screenshots, multi-screen playback, picture-in-picture style small floating windows, gravity-based auto rotation, mirror rotation, adjustable display ratios, fast and slow playback, volume and brightness gesture control, and pre-roll, mid-roll, interstitial and skippable ad slots. It also handles list playback with seamless transitions when the user taps through to a detail page, and supports multiple videos playing at once. You would reach for this library if you are building an Android app that needs sophisticated video playback and you want those capabilities through one maintained package rather than gluing many components together. It is distributed through MavenCentral, GitHub Packages, and JitPack, and recent versions also adapt to the 16K memory page size that newer Android devices require. The full README is longer than what was provided.
Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.