Skip to content
 
 

Repository files navigation

mpvRex

Feature-rich Android video player based on libmpv.

mpvRex is an advanced, customizable video player for Android. It combines the versatility of libmpv with a modern Jetpack Compose interface and unique user-centric features.


Showcase

Player UI — Glassmorphism controls

Video browser · Picture-in-picture · About screen

Playlist window · File options sheet


Features

🎬 Playback & Gestures

  • Circular Double-Tap Seek — fully customizable circular seek overlay with smooth transition animations
  • Seek Cancellation — cancel a seek mid-gesture by dragging backwards, with interactive pointer-scaling feedback animations
  • Subtitle Drag-to-Reposition — tap and drag subtitles vertically to position them anywhere on screen
  • Subtitle Swipe Seeking — swipe horizontally to jump precisely between subtitle lines
  • Top Seek Capsule OSD — pill-shaped overlay showing double-tap seek feedback without blocking the video
  • Dynamic A-B Loop & Frame Navigation — set loop points with adjustable vertical bias; fine-tune with a floating, non-colliding frame-by-frame panel
  • Advanced Zoom & Pan — independent video scaling, black bar removal, and interactive zoom/pan sliders in the Aspect Ratio sheet; settings saved per video
  • Refined Tap & Lock Logic — custom exclusion zones, optional seekbar tap prevention, and one-tap control lock

🎨 UI & Aesthetics

  • Glass Theme Player UI — sleek glassmorphism design across controls, seekbar, title bar, speed indicator, and Shorts player
  • Dynamic Tab Manager — hide, show, and reorder dashboard tabs to fully customize your bottom navigation
  • Material You — player controls dynamically match your Android system accent or app theme
  • Theme Transition Animation — premium circular reveal animation when toggling between light and dark themes
  • Embedded Cover Art Thumbnails — automatic extraction of embedded cover art and sibling artwork as local video thumbnails

🗂️ File Explorer & Media Library

  • Unified Explorer Engine — ensures every browsing mode (local storage, network shares, and playlists) looks, feels, and behaves identically
  • M3U Playlist Support — load M3U playlists with custom stream titles and drag-and-drop reordering
  • Multi-Select Range — select a range of items easily by long-pressing the first file and tapping the last
  • Sectioned Grid/List Layouts — independently customizable inside tree subdirectories
  • Folder Metadata — recursive file counts, watched/unplayed dimming, and reactive "NEW" badges
  • Breadcrumb Navigation — toggleable path breadcrumbs in the tree view
  • Advanced Sorting — by Name, Date, Size, and Duration
  • Network Streaming Proxy — high-performance proxy for WebDAV, SMB, and FTP streams with image preview caching
  • Mark As System — mark videos as watched, skipped, new, or flagged; filter your library accordingly
  • Media Library View — browse your full video collection outside the file tree
  • Shorts Mode — overhauled vertical video player with directory source filters, session Free Mode, Clean UI Mode, and reactive MPV observers

⚙️ Engine & Customization

  • HDR-to-SDR Tone Mapping — high-quality tone mapping via hdr-toys shader pipeline
  • Smart Orientation — force landscape/portrait per video, stored as a preference
  • Audio Support — scan, display, and play standalone audio files directly inside the file explorer and player

⚡ Performance

  • Battery-Optimized Playback — optimized playback engine designed to maximize battery life during long viewing sessions
  • Reactive StateFlow Observers — per-instance MPV property observers that survive background resume and eliminate frozen UI
  • Gesture JNI Elimination — removed per-event JNI reads during pan and zoom gestures for smoother interaction
  • Smart Background Service — background playback service starts only when actually backgrounded

Installation

Preview builds may be unstable and are intended for testing only.


Translations

Translations can be managed using Droidlate (PyPI) — a local, web-based UI designed for editing Android strings.xml translation files.

If you would like to contribute to translating mpvRex into your language, please refer to the Translation Contribution Guide for step-by-step instructions on running Droidlate locally.


Credits

mpvRex has its roots in mpvEx, which itself builds on mpv-android. We're grateful for the foundation they laid.

Additional inspiration and reference: mpvKt · Next Player · Gramophone


License

Distributed under the Apache License 2.0. See LICENSE for details.

About

A beautiful media player for android, based on mpv-android and built with Jetpack Compose. Forked from mpvEx

Resources

Contributing

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages