Official website: https://mpvsynth.app
mpv-synth is a Windows media player built on mpv, with frame interpolation, automatic HDR colour management, a filmstrip timeline, OpenSubtitles integration, and one-click browser streaming. Free and open source.
Windows has never had a great media player. The third-party ecosystem hasn't kept pace with how people watch things now. The most popular options work, but they feel like they were designed a decade ago, because they were.
Clunky interfaces assembled from stock Windows form components. Windows that sit on your desktop doing nothing after playback ends. No memory of where you were in a file. No awareness that you might want to move on to the next episode automatically. No consideration of the display you're watching on, the colour space of the content, or whether the motion could benefit from interpolation.
Compare it to your phone. You open a file and it plays. When it's done, it's done. It gets out of the way. There's no application to wrangle. It feels like a feature that should be part of any modern operating system.
That's the experience mpv-synth delivers on Windows. Open a video file and it plays, full stop. No splash screens, no library to build, no window hanging around after playback ends. When there are no more videos to watch in a folder, the player closes itself. It knows its job is done.
Frame Interpolation — Full VapourSynth pipeline. Feed it any framerate. Match your display's refresh rate, stick to 60fps, or push 144. The presets in the right-click menu are just numbers in a config file: change them, add more, remove ones you don't need. Set it to activate automatically and limit by resolution, if your GPU handles 1080p fine but struggles at 4K, set a max resolution and it only kicks in below that. Entirely optional → the player works fine without it.
Automatic Colour Management — The icc-detect plugin reads the colour space and HDR metadata of every file on load. HDR content passes through natively on capable displays and tone-maps correctly on SDR, automatically, every time.
Filmstrip Timeline — 150 evenly-spaced thumbnail slices by default, have as many or as few as you like to achieve your best look, composited into the seekbar, giving you a visual map of the entire file. Hover for a frame-accurate preview. Jump to any scene with a click.
Auto-advance & Resume — When a video ends, mpv-synth moves to the next file in the folder automatically → when you quit mid-file, it resumes exactly where you stopped. No manual bookmarking required.
Smart Subtitle Selection — The auto-subs plugin activates a subtitle track only when it matches every term in a configurable list → match=en,forced picks up English (Forced) automatically, while leaving everything else untouched. Fine-grained, or one-word simple.
OpenSubtitles Integration — The opensubs plugin searches and downloads subtitles from OpenSubtitles and other providers directly from the right-click menu. Manual search, best-match download, or browse results, all without leaving the player. Supports login credentials for premium providers.
Simplified On-Screen Controls — The osc-simplified plugin replaces mpv's default OSC with a clean, minimal control bar. Configurable skip buttons (left, right, middle click, each with its own seek duration), dark and light modes, and rounded corners. No clutter.
Dynamic Right-Click Menu — The dyn_menu plugin builds a native Windows context menu from your input.conf bindings. Every shortcut you define appears in the menu automatically, organized by the menu path you specify. No separate menu config to maintain. Modified from the original mpv-menu-plugin for reliability.
Self-updating — Press U from within the player to pull the latest versions of mpv, ffmpeg, yt-dlp, plugins, and the updater itself. The entire toolchain stays current with a single keypress, or run updater.bat directly without opening the player.
Config Editor — The config-editor plugin lets you open any conf file in your text editor or IDE of choice, straight from the right-click menu. Press E for mpv.conf, I for input.conf, or pick from the menu. Set your preferred editor once and it's one keypress away.
- Download and extract the latest release.
C:\Program Files\is the recommended location. - Run
INSTALL.BAT(right-click and Run as Administrator on Windows 10). - Double-click any video.
Done.
-
Download the zip and extract it where you want the installation to live.
C:\Program Files\is the recommended location. -
Run
INSTALL.BAT. This single script downloads the latest versions of mpv, ffmpeg, ffprobe, yt-dlp, and VapourSynth*; registers file associations; creates Start Menu and AutoPlay entries; then removes itself. The install is interactive. Read the prompts as they appear. Defaults are set to the recommended choices throughout, with one exception: if your machine is more than roughly a decade old, choosex86_64at the first prompt rather than the defaultx86_64-v3. Any modern hardware should handle v3 fine. -
Set your language (optional, English by default). Open
portable_config\mpv.confand set your preferred language codes:alang=ja,jpn,en slang=en,engFor subtitles to activate automatically, edit
portable_config\script-opts\auto-subs.confand set your match terms. A track is only selected if it matches every term in the list, so you can be as broad or as specific as you like:match=en,forcedThe
matchlist is comma-separated with no spaces. Each entry must appear somewhere in the subtitle track's name or language tag for it to be selected. The defaultmatch=en,forcedtargets tracks labelled something like English (Forced). -
Double-click a video. mpv-synth registers itself as the default handler for common video formats. If Windows asks which app to use, select mpv-synth and tick "Always".
* VapourSynth have released R74, which is not yet compatible, so R73 will be used until such time as that changes.
The browser extensions are completely optional. mpv-synth works perfectly as a local player without them. They add a "Play in mpv-synth" right-click option to any page with embedded video in Chrome-family browsers and Firefox.
-
Extract
installer\mpv-synth-extension.zipin place. Then, inside thenative\folder, right-clickinstall.batand choose "Run as Administrator". This registers the Python host that allows the browser to securely launch mpv. You only need to do this once. Prerequisite: Python 3 must be installed and on your PATH. -
Load the extension in your browser. Chrome / Edge / Brave / Vivaldi: Go to
chrome://extensions, enable Developer Mode, click "Load unpacked", and select thechrome\folder. Firefox: Go toabout:debugging#/runtime/this-firefox, click "Load Temporary Add-on...", navigate to thefirefox\folder, and selectmanifest.json. -
Click the mpv-synth icon in your toolbar. Fill in the mpv Location (the folder containing
mpv.exe) and Config Location. If you installed to the default location, you can leave the pre-filled placeholders as-is. Click Save.
Extensions are currently distributed for developer-mode installation rather than through browser extension stores. This sounds more technical than it is. The walkthrough above covers everything, and it takes under a minute.
All actions are available in the right-click menu with keyboard shortcuts displayed alongside them. Here are the ones you'll reach for most often:
| Key | Action |
|---|---|
Escape |
Toggle fullscreen |
Space |
Play / Pause |
q |
Quit → position saved automatically |
← / → |
Seek 5 seconds; hold Ctrl for 5 minutes |
↑ / ↓ |
Seek 30 seconds forward / back |
a / d |
Previous / next chapter |
w / s |
Step one frame forward / back |
, / . |
Previous / next file in folder |
[ / ] |
Playback speed −10% / +10% |
{ / } |
Playback speed ½× / 2× |
Backspace |
Reset playback speed |
- / = |
Volume down / up |
v |
Toggle subtitle visibility |
Ctrl+v |
Cycle subtitle tracks |
Shift+s |
Browse OpenSubtitles |
Alt+t |
Download best-match subtitles from OpenSubtitles |
Alt+s |
Manual OpenSubtitles search |
Ctrl+i |
Toggle automatic ICC profile detection |
Alt+ |
VapourSynth off |
Alt+5 |
VapourSynth 60fps |
Alt+8 |
VapourSynth 120fps |
I |
Edit keyboard bindings & menu |
E |
Edit player configuration |
U |
Update all components (mpv, ffmpeg, yt-dlp…) |
t |
Toggle statistics overlay |
All shortcuts and right-click menu entries are defined in portable_config\input.conf. Each line follows this pattern:
[key] [action] #menu: Top Level > Submenu > Item name
For example:
Right seek 60 #menu: Navigate > Skip > 1 min forward
The #menu: portion is optional → omit it for a binding with no menu entry. Use _ as the key for a menu entry with no keyboard shortcut. Each > adds a submenu level. Open the file via Tools → Edit Config in the right-click menu, or press I.
All plugin options live in portable_config\script-opts\, one .conf file per plugin, named accordingly. The main player options are in portable_config\mpv.conf. Each setting includes a comment describing what it does and its type, so you can edit them in any text editor. Every plugin written for mpv-synth can be disabled with enabled=no at the top of its conf file.
The filmstrip defaults to 150 thumbnails generated across 4 concurrent threads. This gives a dense, visually rich timeline and runs smoothly on modest hardware, tested on a 65W Ryzen 7 mini-PC.
# portable_config\script-opts\filmstrip.conf
thumbnail_count=150
max_concurrent=4If generation impacts playback, reduce max_concurrent to 2 or 1 → thumbnails will build more slowly, but playback won't be affected. thumbnail_count=100 still looks great.
mpv-synth is built on the work of a lot of talented people. Several plugins were written from scratch for this project. Others are bundled from open source projects, some modified for reliability or to resolve issues found during testing.
Core:
- mpv — the player at the core of everything. Extraordinarily capable, extraordinarily extensible.
- mpv-hero — the starting point and inspiration for this project.
Original plugins (written for mpv-synth):
- auto-subs — automatic subtitle selection based on configurable match terms.
- opensubs — OpenSubtitles search and download directly from the player. Supports multiple providers with optional login credentials.
- filmstrip — filmstrip timeline with configurable generation and animation.
- icc-detect — automatic ICC profile and HDR detection. Tone-maps HDR content on SDR displays using configurable algorithms.
- osc-simplified — minimal on-screen control bar with configurable skip buttons, dark/light modes, and rounded corners.
- vapoursynth — frame interpolation integration. VapourSynth filter management with configurable FPS presets and auto-apply rules.
- open-file-dialog — native Windows file/folder open dialog integration.
- config-editor — open any conf file in your text editor or IDE of choice from the right-click menu.
Modified from open source:
- dyn_menu — dynamic right-click menu generated from input.conf bindings. Modified from the original mpv-menu-plugin for reliability.
- thumbfast — timeline hover thumbnails. Heavily modified → stall watchdog added, filmstrip integration, configurable process priority.
Bundled:
- VapourSynth — the frame processing framework powering interpolation.
- uosc — the interface layer. The de facto standard for mpv UI.
- recent-menu — recently played files list.
- bjaan — libraries for VapourSynth integration and interpolation.
mpv-synth is and always will be free. No premium tier, no feature gates, no ads. The code is on GitHub for anyone to read, fork, or contribute to.
What it isn't is cost-free to build. The plugins, the bug hunts, the rendering pipeline deep dives. That's real time, and time is the one thing you can't get back. A small donation says "keep going" in a way that matters more than a star.
If mpv-synth has been useful, that's enough. If you'd like to see it grow faster → a proper GUI for managing settings without touching conf files, more plugins, better documentation, then a coffee helps make that happen sooner rather than later.
If you run into a problem, open an issue on GitHub.
- Now → Player & plugins: The core player is stable and in daily use. Plugins are actively maintained.
- Autumn → GUI testing: A Tauri-based GUI is in development to manage settings, updates, and plugins without touching conf files. Internal testing begins this autumn.
- After testing → Full release: Barring paid work getting in the way, a full public GUI release should follow, aimed at users of all technical levels, not just those comfortable editing config files.
