You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feature-rich, Efficient Powerful Android video player based on libmpv. No ads. No trackers. No noise. Just a serious video player with a calmer surface and a sharper edge.
Showcase
Features
MpvRx pushes the mpv-android experience further with deep customization, thermal-aware performance, and unique quality-of-life features. Here's what sets it apart:
🎨 Theme & Visual System
Feature
Description
25+ Color Themes
Default, Dynamic (Material You), Catppuccin, Nord, Tokyo Night, Rose Pine, Gruvbox, Dracula, and many more
AMOLED Pure Black Mode
Every theme has a dedicated variant with pure black backgrounds
Album View (folder grid) and Tree View (file manager hierarchy)
Folder Pinning
Pin frequently accessed folders to top
Single-Child Auto-Flatten
Folders with one subfolder auto-flatten for faster browsing
Auto-Scroll to Last Played
Opens to the last played video position
Recursive File/Folder Counts
Shows total video count, duration, size computed recursively
"NEW" Badges
Configurable threshold for new video indicators
Grid/List Layout
Per-orientation column count settings
Multi-Protocol Network
Built-in SMB, FTP, and WebDAV clients
🤖 AI Integration
Feature
Description
Provider Support
Gemini and Groq with configurable API keys and models
AI Subtitle Translation
Translate subtitles with custom prompts
AI Subtitle Formatting
Reformat subtitle styling with custom prompts
AI File Renaming
Bulk rename video files with custom rename prompts
📜 Scripting & Editor
Feature
Description
Dual Language
Lua (.lua) and JavaScript (.js) script support
Sora Code Editor
Built-in editor with TextMate syntax highlighting
Runtime Script Loading
Enable/disable scripts without restarting
Config Editor
Built-in editor for mpv.conf and input.conf
⚙️ Utilities
Feature
Description
Stats Page 6
Live system monitor: FPS, dropped frames, codecs, network sparkline, battery
Video Compressor
Built-in FFmpeg-based compression with presets
12 Video Filter Presets
Vivid, Cinematic, Dramatic, Ghibli Style, Neon Pop, Deep Black, and more
Custom Skip Segments
Intro/outro/recap/credits/preview detection from IntroDB, TIDB, AniSkip
A-B Loop
In-player looping with visual markers on seekbar
Frame Navigation
Frame-by-frame forward/backward with frame number display
Sleep Timer
Built-in with quick presets (15/30/45/60 min)
Adaptive Background Playback
Auto-PiP on Home, auto-resume after screen unlock
Notification Styles
None, Media, or Progress with Chapters (Android 16+)
Safe Area / Window Offset
Prevents camera notch overlap
Display Cutout Mode
Full-bleed on notch devices
Remember Brightness
Persists brightness level set during playback
M3U Playlist Support
Parse and play local M3U playlists
🔋 Battery Optimization guide for Mpv
First Pro Tip Keep Mpv Conf empty if you are newbie
Use gpu not gpu-next — gpu-next is a Vulkan-based renderer that keeps the GPU awake for no reason when playing normal video. The classic gpu backend is lighter and uses the OpenGL driver stack, which on most Android devices has better power characteristics.
Disable Vulkan entirely. Vulkan is great for Video Playback but also Heavy.
Use the fast mpv profile. It's literally built into mpvRx use that Mpv Profiles and Set it to Default or in mpv.confprofile=fast
Don't use shaders. That Anime4K preset you using that's what's eating your battery. Shaders run on the GPU every single frame. If you're watching 24fps content and you have a shader pipeline running, congratulations — you're doing 24 unnecessary GPU compute passes per second for a Minute amount of visible benefit on a phone screen .
Don't use AI-generated configs. That means you, the person who copied a Reddit config with 200 lines of scale=ewa_lanczossharp and dscale=mitchell and cscale=sinc and a dozen glsl-shaders entries. Most of You have no idea what any of those do. You just made your phone render video like it's preparing for a 4K cinema projection. On a 6-inch screen. Grow some Brains Its your android Phone not some Fuckin.. 4k Television
My POV: mpv's default config with profile=fast and the gpu backend plays video with negligible battery impact — often less than OEM players because mpv doesn't have a billion proprietary DRM modules, analytics SDKs, and ad frameworks burning CPU in the background. The next time your battery drops more than 20-25% watching a 2-hour movie, don't blame mpv. Blame the 14 shaders you blindly copy-pasted.
Just a Pro tip if your battery consumption stays within 200 mAh and belwo 0.9W ( See Page 6 of MpvRx - video player More Settings -> Page6) useage than ur Mpv Conf are Proper for Video watching thats what i have experimented and telling rest all i don't know About in detail technicality's if anyone wanna tell me In depth guide then keep it to yourself i dont wanna listen
If something breaks, feels off, or deserves another pass, don't be Dumb and ask for Trash Features which only you require it wll be auto deleted,
report it in the Issues.
Build
Requirements
JDK 17
Android SDK with modern build tools installed
Git
Debug Build
./gradlew.bat :app:assembleStandardDebug
Release Variants
Variant
Description
standard
Main release with in-app update support
APK Variants
Variant
Description
universal
Works on all supported devices
arm64-v8a
Recommended for most current Android devices
armeabi-v7a
For older 32-bit ARM devices
x86
For 32-bit Intel and AMD Android devices
x86_64
For 64-bit Intel and AMD Android devices
Support
If you find MpvRx useful and would like to support its development, consider buying me a coffee! Your support keeps the project alive and helps push new features.
☕ Buy Me a Coffee
UPI
panditritesh2001@okhdfcbank
Scan with any UPI app (Google Pay, PhonePe, Paytm, BHIM)
Release Notes For Maintainers
To cut a signed GitHub release through Actions, configure these repository secrets:
Secret Name
Description
SIGNING_KEYSTORE
Base64-encoded keystore file (.jks or .keystore)
SIGNING_KEY_ALIAS
Key alias inside the keystore
SIGNING_STORE_PASSWORD
Password for the keystore
KEY_PASSWORD
Password for the signing key
Then bump versionCode and versionName in app/build.gradle.kts, create a tag, and push it:
git tag -a v1.3.1 -m "Release version 1.3.1"
git push origin v1.3.1
Preview releases use the same flow with preview tags such as:
git tag -a v1.3.1-preview.1 -m "Preview release"
git push origin v1.3.1-preview.1