Skip to content

AhmedRX20/mpvRex

 
 

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 — Material You adaptive controls, seek capsule OSD, and gesture zones

Video browser · Picture-in-picture · About screen

Playlist window · File options sheet


Features

🎬 Playback & Gestures

  • 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
  • Persistent Video Pan & Zoom — zoom and position settings saved per video, with quick sliders in the Aspect Ratio menu
  • Keyboard-Free Sleep Timer — touch-friendly bottom sheet to schedule sleep times without opening a keyboard
  • Onboarding Tutorials — step-by-step in-player guides for speed lock and subtitle gestures
  • Refined Tap & Lock Logic — custom exclusion zones, optional seekbar tap prevention, and one-tap control lock

🎨 UI & Aesthetics

  • 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
  • Animated Splash Screen — custom vector-art launch animation with light/dark mode support
  • Clean Preferences — organized Jetpack Compose preference screens with fully localized strings

🗂️ File Explorer & Media Library

  • Unified Explorer Engine — ensures every browsing mode (local storage, network shares, and playlists) looks, feels, and behaves identically
  • 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, or flagged; filter your library accordingly
  • Media Library View — browse your full video collection outside the file tree
  • Shorts Mode — vertical video playback with auto-swipe for Reels-style content

⚙️ 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
  • Async UI Animations — seekbar animations run in coroutine contexts, off the UI thread
  • Smart Background Service — background playback service starts only when actually backgrounded
  • Compose Recomposition Tuning — minimized unnecessary recompositions across all player controls

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 modern Android video player powered by libmpv, built with Jetpack Compose.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 77.9%
  • GLSL 20.3%
  • TypeScript 1.7%
  • Other 0.1%