mpv was
forked by Vincent Lang, also known as wm4, in 2012 from
mplayer2, which was forked in 2010 from
MPlayer.[8] 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.[9]
mpv has had several notable changes[11] 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.
Video websites: By using
youtube-dl, mpv natively supports playback of
high-definition video (HD) content and audio on YouTube and over 1000 other supported sites.[12] This allows mpv to replace site-specific video players based on
Adobe Flash or
HTML5.
Audio scaling algorithm: 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.[16]
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.[17] This form of player control, along with a
JSON IPC mechanism, replaces MPlayer's "slave mode".
Encoding subsystem: 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.[18] 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.
Lua scripting: 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.[19]
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.
The following are all
open source front-ends of mpv (based on "libmpv" or the command-line version of mpv) which try to provide more features and more
user-friendly interface than mpv, and/or better integration with various
operating systems or
desktop environments.[20]
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.[21] Its development stalled in January 2017 in favor of another mpv frontend by the same developers, Mochi Player, which is not yet complete.
Deepin Movie - for
Linux - Written by and default video player for the Chinese
Deepin distro and desktop environment.[22]
Celluloid (formerly GNOME MPV) - for
Linux - based on
GTK. Its goal is to be a simple GTK-based graphical interface for mpv that meets the
GNOME Human Interface Guidelines.[23]
Haruna Media Player - for Linux, Windows - based on Qt/
QML. A
KDE media player project with YouTube support and customizable shortcuts. [24]
IINA -
macOS 10.10+ media player with native macOS
Cocoa interface. 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.[25]
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.net -
Windows media player with native Windows interface. 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.[27]
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.[28]
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.[30]
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.[31]
^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. ...{{
cite web}}: CS1 maint: numeric names: authors list (
link)