A portable mpv enhancement suite focused on geometry control (pan/zoom/rotate/flip/crop), AB loop, speed control, color/filters adjustment, named presets, and clean OSD user experience. Built with modular Lua scripts, configurable options, automated packaging tools, and comprehensive documentation for Windows portable deployment.
MPV-GeomUX is a comprehensive portable video player solution built on mpv, designed for advanced visual adjustment workflows. It specializes in real-time geometry transformations, instant color/filter adjustments, AB loop controls, preset management, and seamless Windows 11 portable deployment.
The project implements a unified high-efficiency workflow through mpv's portable_config architecture, modular Lua scripting system, and optional companion frontend via IPC control, delivering consistent performance and excellent user experience.
- One-Click Portable: Deploy portable_config alongside mpv.exe for installation-free startup
- High Interactivity: Complete control via keyboard shortcuts, mouse actions, and OSD/menu interfaces
- Advanced Customization: Save/load personal presets, per-file state memory, automatic profile application
- Modular Extension: Lua script modules with toggle/extend capabilities without conflicts
- Download and extract mpv Windows version zip package
- Run
./tools/build_portable.sh
to build portable configuration - Launch with
MPV-GeomUX.bat
orMPV-GeomUX-Silent.vbs
- Drag video files into the window and use the keyboard shortcuts below
- Operating System: Windows 11 (primary), Windows 10 (compatible)
- mpv Player: Latest stable version (auto-downloaded by build tools)
- Development Environment: WSL2 with Ubuntu (for build scripts)
- Dependencies: Lua 5.1/5.2/LuaJIT (auto-installed)
Transform Control โก:
r
key: Rotate clockwise 90ยฐ (0ยฐ โ 90ยฐ โ 180ยฐ โ 270ยฐ โ 0ยฐ)Shift+r
key: Rotate counterclockwise 90ยฐ (0ยฐ โ 270ยฐ โ 180ยฐ โ 90ยฐ โ 0ยฐ)m
key: Toggle horizontal flip (mirror effect)Shift+m
key: Toggle vertical flip (upside-down effect)Alt+0
key: Reset all transformations to default state
Mouse Control:
- Single click on video: Toggle pause/play
- Double click on video: Toggle fullscreen mode
Mix and match for creative effects:
- Rotation + Flip: Perfect for mobile videos and mirrored content
- Four flip modes: None, Horizontal (H), Vertical (V), Both (HV)
- Instant reset: One key to restore original orientation
- Smart persistence: Settings remembered per video file
- Zero Installation: Drop portable_config folder and run!
- Lightning Fast: < 50ms response time for all transforms
- Smart Debug: Cycle through ALL combinations with
Ctrl+Shift+D
- Clean Architecture: Zero root directory pollution principle
Ctrl+Shift+I
: Show complete transform status (rotation + flip + all)Ctrl+Shift+T
: Test MPV-GeomUX loading statusCtrl+Shift+D
: Cycle through all transform combinations for testing
- Advanced Geometry (Stories 1.3-1.4): Pan (fine adjustment + mouse drag), zoom and fit modes
- Color & Filters (Epic 2): Brightness/contrast/saturation/hue, curves, GLSL shaders, 3D LUT, filter stacking and preset management
- AB Loop & Speed (Epic 3): A/B markers, looping, speed fine-tuning with pitch correction
- Presets & Automation (Epic 4): Named presets, multi-preset management, per-file memory, auto-profile by video properties or filename patterns
- UI/UX (Epic 5): Navigable OSD menus, status overlays, shortcut display, optional desktop companion GUI (IPC control)
- Portable & Packaging (Epic 6): Windows 11 portable deployment, zip packaging and versioned releases
# Clone the repository
git clone https://github.com/user/MPV-GeomUX.git
cd MPV-GeomUX
# Copy environment template
cp .env.example .env
# Edit .env to set your mpv installation path
# MPV_INSTALL_PATH=/path/to/your/mpv
# Build portable configuration
./tools/build_portable.sh
- Download mpv Windows portable version
- Extract to your preferred location
- Copy
config/
andscripts/
directories tompv/portable_config/
- Launch mpv with enhanced configuration
Create .env
file with your settings:
MPV_INSTALL_PATH=/mnt/c/Users/user/Documents/Yippine/Software/mpv
MPV_DEV_PATH=/mnt/c/Users/user/Documents/Yippine/Program/MPV-GeomUX
USER_PASSWORD=your_wsl_password
Customize behavior via config/script-opts/transform_manager.conf
:
# OSD display settings
osd_duration=1.5
osd_enabled=yes
debug_mode=no
# Feature toggles
enable_rotation=yes
enable_state_persistence=yes
- Launch Player: Run
MPV-GeomUX.bat
orMPV-GeomUX-Silent.vbs
- Load Video: Drag and drop video file onto player window
- Control Playback: Use mouse clicks or keyboard shortcuts
- Transform Video: Use rotation keys to adjust video orientation
- State Persistence: Your rotation settings are automatically saved per video
- Reset Function: Use
Alt+0
to quickly reset all transformations - Debug Mode: Enable debug logging in configuration for troubleshooting
MPV-GeomUX/
โโโ scripts/core/ # Core Lua modules
โโโ config/ # mpv configuration files
โโโ tools/ # Build and deployment scripts
โโโ docs/ # Documentation
โโโ tests/ # Testing utilities
# Install dependencies (WSL/Ubuntu)
sudo apt update
sudo apt install lua5.1 lua5.2 luajit mpv
# Build portable configuration
./tools/build_portable.sh
# Run syntax checks
lua tests/syntax_check.lua
# Manual testing
lua scripts/test_rotation.lua
# Integration testing
./tools/test_integration.sh
Issue: Rotation not working
- Solution: Check if
transform_manager.lua
is loaded properly - Command: Press
Ctrl+Shift+T
to test loading status
Issue: OSD not displaying
- Solution: Enable OSD in script options
- File:
config/script-opts/transform_manager.conf
Issue: Key bindings not responding
- Solution: Check for conflicts in
config/input.conf
Enable debug logging:
# In transform_manager.conf
debug_mode=yes
log_level=debug
For 4K videos or older hardware:
- Disable hardware decoding:
hwdec=no
inmpv.conf
- Reduce OSD update frequency
- Use software rendering mode
This project follows the BMad Method development cycle:
- Product Management โ Requirements analysis
- Architecture โ Technical design
- Document Sharding โ Task breakdown
- Scrum Management โ Sprint planning
- Development โ Implementation
- Code Standards: All code comments and variables in English
- Documentation: Traditional Chinese for docs, English for code
- Testing: Include test cases for new features
- Commit Messages: Follow conventional commit format
Use specialized commands for version control:
/commit
- WIP staging commits/push
- Code push operations/version
- Version tag management/release
- GitHub release creation/publish
- Complete publishing pipeline
[License information to be added]
- mpv: The powerful media player foundation
- Lua Community: For excellent scripting support
- Contributors: All developers and testers who make this project possible
- Issues: Report bugs on GitHub Issues
- Documentation: Check
docs/
directory for detailed guides - Community: Join discussions in project forums
Version: v0.1.2 (Stories 1.1 & 1.2 Complete)
Last Updated: August 17, 2025
Status: โ
Rotation & Flip Control Fully Implemented | ๐ฏ Epic 1 Progress: 50% Complete