mpv was forked by Vincent Lang, also known as wm4, in 2012 from mplayer2, which was forked in 2010 from MPlayer. The motive for the fork was to encourage developer activity by removing unmaintainable code and dropping support for very old systems. As a result, the project had a large influx of contributions.
mpv has had several notable changes since it was forked from MPlayer; the most user-visible being the addition of an on-screen-controller (OSC) minimal GUI integrated with mpv to offer basic mouse-controllability. This was intended to make interaction easier for new users and to enable precise and direct seeking.
The player is equipped with a scaletempo2 parameter for speed changing at constant pitch, for which it uses the Waveform Similarity Overlap-and-add (WSOLA) algorithm, citing more smoothness than the original scaletempo used in the original mplayer, and rubberband.
Improved client API
Beyond working as a stand-alone media player, mpv is designed to be used directly by other applications through a library interface called libmpv. This required making all mpv code thread safe. An example of an application which uses libmpv is Plex. This form of player control, along with a JSON IPC mechanism, replaces MPlayer's "slave mode".
mpv includes a new video encoding mode that can be used to save files being played under different formats. This allows mpv to work as a transcoder, supporting many video formats. This feature serves as a direct replacement for the MEncoder component of MPlayer, which was a separate program rather than being built into the player.
mpv's behavior and functions are customizable via use of small programs written in the Lua scripting language, which can be used for tasks like cropping video, providing a graphical user interface (GUI) or automatically adjusting the display's refresh rate.
Like the original MPlayer, mpv is still primarily a command-line application although it has a more advanced user interface than MPlayer that can use not only the keyboard but also the mouse for mpv’s on screen controller (OSC). However, this OSC is still not a full-featured GUI, and there are a number of front-ends available, which use GUI widgets for Qt, GTK, or some other widget toolkit to give mpv a more complete graphical interface.
Baka MPlayer - media player on Windows, Linux, and macOS although macOS version requires the user to compile from source, with Qt5 widgets, written in C++. Its main goal is uncluttered, simple design. Its development stalled in January 2017 in favor of another mpv frontend by the same developers, Mochi Player, which is not quite finished yet.
Deepin Movie - for Linux - Written by and default video player for the Chinese Deepin distro and desktop environment with Qt5 widgets, written in C++.
IINA - macOS 10.10+ media player with native macOS Cocoa interface, written in Swift. It is a full-featured native macOS graphical interface for mpv that makes use of new features in the most recent versions of macOS. mpv config file and script system are also integrated.
Media Player Classic Qute Theater (mpc-qt) - Linux and Windows media player with Qt5 widgets, written in C++. Its goal is to reproduce and ultimately improve upon the functionality of Media Player Classic Home Cinema (mpc-hc), a Windows-only program, as a cross-platform mpv-based multimedia player that also works on Unix-like operating systems like Linux.
mpv for Android - Android media player with native Android interface, written in Kotlin. Its goal is to be a fully functional, full-featured port of mpv (which primarily targets desktop operating systems) to the mobile operating system Android.
mpv.net - Windows media player with native Windows interface, based on Microsoft .NET Framework, written in C#. Its goal is to provide the standard mpv OSC interface on Windows along with a customizable Windows context menu, C# scripting, and a Managed Extensibility Framework (MEF) for addons.
OvoPlayer - Linux and Windows music player that supports many backends, based on LCLwidgetsets, written in Pascal. Its goal is to be a flexible audio player that supports as many audio engine backends like mpv as possible.
Sugoi Player - media player on Windows (that might work on Linux and macOS but those are untested) forked from Baka MPlayer, with Qt5 widgets, written in C++. It aims to improve upon and continue development of an mpv frontend based on Baka MPlayer, since Baka MPlayer’s development stalled in January 2017.
xt7-player-mpv - Linux media player with Qt5 or Qt4 widgets, written in Gambas 3 (a dialect of BASIC). Its goal is usability, and a variety of extra features like YouTube and SHOUTcast integration, media tagging, library and playlist management, as well as adding more features beyond that.
^wm4. "LGPL relicensing (#2033)". mpv-player/mpv (source code repository). GitHub. Archived from the original on 2017-09-14. Retrieved 2017-09-14. ... GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL. ...