mpv wasforked by Vincent Lang, also known as wm4, in 2012 frommplayer2, which was forked in 2010 fromMPlayer.[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 obvious at first glance is the addition of a minimal on-screen controller (OSC) to offer basic mouse interactions. This was intended to make interaction easier for new users and to enable precise and direct seeking.
Video websites: By usingyt-dlp, mpv natively supports playback ofhigh-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 onHTML5.
Audio scaling algorithm: The player is equipped with ascaletempo2 parameter for speed changing at constant pitch, for which it uses theWaveform Similarity Overlap-and-add (WSOLA) algorithm, citing more smoothness than the originalscaletempo used in the originalmplayer, andrubberband.[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 calledlibmpv.Plex is an example of an application that makes use of this functionality.[17] As a result, all mpv code is required to bethread safe. This form of player control, along with aJSON IPC mechanism, replaces MPlayer's "slave mode".
Encoding subsystem: mpv includes a newvideo encoding mode that can be used to save files being played under different formats. This allows mpv to work as atranscoder, supporting many video formats.[18] This feature serves as a direct replacement for theMEncoder 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 theLua scripting language, which can be used for tasks likecropping video, providing agraphical user interface (GUI) or automatically adjusting the display'srefresh rate.[19]
Like the originalMPlayer, mpv is still primarily a command-line application. However, it also has a basic on-screen controller (OSC) to permit limited mouse control; this OSC is still not a full-featuredGUI, and there are a number of graphicalfront-ends available, which useGUI widgets forQt,GTK, or other toolkits to provide a more complete UI.
The following are someopen source front-ends of mpv (based on "libmpv" or the command-line version of mpv) which try to provide more features and a moreuser-friendly interface than mpv, and/or better integration with variousoperating systems ordesktop environments.[20]
Baka MPlayer - media player onWindows,Linux, andmacOS although macOS version requires the user to compile from source, withQt5 widgets, written inC++. 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.
C-Play - is a video/media player developed for cluster environments where you need multiple computers and/or displays to run your video/image content on. The displays could be flat or curved, and the video content 180 fulldome / fisheye, 360 equirectangular or equiangular cubemap or regular flat content, as well as stereoscopic (Side-by-side or Top-Bottom). Installers and testing is primarily performed forMicrosoft Windows, but the code is cross-platform, written inC++ with Qt6/Qt5 QML UI.[22]
Deepin Movie - forLinux - Written by and default video player for the ChineseDeepin distro and desktop environment.[23]
Haruna Media Player - for Linux, Windows - based on Qt/QML. AKDE media player project with YouTube support and customizable shortcuts.[25]
IINA -macOS 10.10+ media player with native macOSCocoa 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.[26]
ImPlay -Cross-platform media player with an interface built with the imgui interface library, it includes a context menu and command palette to interact with the player.[27]
Media Player Classic Qute Theater (mpc-qt) -Linux andWindows media player withQt5 widgets, written inC++. Its goal is to reproduce and ultimately improve upon the functionality ofMedia Player Classic Home Cinema (mpc-hc), a Windows-only program, as a cross-platform mpv-based multimedia player that also works onUnix-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.[29]
OvoPlayer -Linux andWindows music player that supports many backends, based onLCLwidgetsets, written inPascal. Its goal is to be a flexible audio player that supports as many audio engine backends like mpv as possible.[30]
Sugoi Player - media player onWindows (that might work onLinux andmacOS but those are untested) forked from Baka MPlayer, withQt5 widgets, written inC++. 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.[32]
xt7-player-mpv -Linux media player withQt5 or Qt4 widgets, written inGambas 3 (a dialect ofBASIC). Its goal is usability, and a variety of extra features likeYouTube andSHOUTcast integration, media tagging, library and playlist management, as well as adding more features beyond that.[33]
^wm4."LGPL relicensing (#2033)".mpv-player/mpv (source code repository). GitHub.Archived from the original on 2017-09-14. Retrieved2017-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)