mpv (media player)
| mpv | |
|---|---|
| Original authors | Vincent "wm4" Lang,[1] MPlayer and mplayer2 developers |
| Developers | Andrei Alexeyev and 23 others[2] |
| Release | August 7, 2013[3] |
| Stable release | |
| Written in | C, Objective-C, Lua[5] |
| Engine |
|
| Operating system | BSD-based, Linux, macOS, Windows |
| Platform | ARM, MIPS, PowerPC, RISC-V, s390x, IA-32 ("i386"), and x86-64 ("AMD64")[6] |
| Size | 33.6 – 68.2 MB as of v0.41.0 |
| Type | Video player |
| License | GPLv2+, parts under LGPLv2.1+, some optional parts under GPLv3[7] |
| Website | mpv |
| Repository | |
| As of | July 2026 |
mpv is a free and open-source video player that runs on Linux, BSD-based, macOS, and Microsoft Windows, and has an unofficial Android port called mpv-android.[8] Forked from mplayer2 in 2012, mpv is mainly a command-line app. This makes the player ideal for integration into other apps. The app's LGPLv2.1+ license agreement further facilitates embedding.
Because of its focus, as of version 0.41.0, mpv's GUI is extremely limited; it does not feature an "Open..." dialog box for finding and opening media. This has lead to its proponents developing a large host of graphical front-ends for it.
History
[edit]In 2012, Vincent "wm4" Lang forked mpv from mplayer2 (which was forked in 2010 from MPlayer)[9] to encourage developer activity by removing unmaintainable code and dropping support for very old systems. As a result, the project received a large influx of contributions.[10]
June 2015, the project began relicensing its source code from GNU General Public License version 2 or later (GPLv2+) to GNU Lesser General Public License version 2.1 or later (LGPLv2.1+) to facilitate integrating mpv into other apps.[11]
Changes from MPlayer
[edit]mpv has had several notable changes[12] since it was forked from MPlayer; the most obvious 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.
Other notable changes include the following.
- Video websites: By using yt-dlp, mpv natively supports playback of content on YouTube and ~1,700 other supported sites.[13]
- 3D renderers for video: mpv includes a custom video output driver that takes advantage of OpenGL[14] and Vulkan[15] to supports over 100 options for controlling playback quality, including the use of advanced upscaling filters, color management, and customizable pixel shaders.[16]
- Audio scaling algorithm: The player can change the playback speed while maintaining constant audio pitch. For this purpose, it supports three audio filters:
scaletempo(inherited from MPlayer),rubberband, andscaletempo2(default). The latter is an implementation of Chromium's Waveform Similarity Overlap-and-add (WSOLA) algorithm, which improves smoothness over the other two.[17] - Improved client API: mpv is designed to be used directly by other apps (e.g., Plex)[18] through a library interface called
libmpv. This requires mpv code to remain thread-safe. 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 save files being played under different formats. This allows mpv to work as a transcoder, supporting many video formats.[19] In contrast, the parent project MPlayer used a standalone app called MEncoder.
- Lua scripting: mpv's supports customization through scripting. Scripts written in the Lua scripting language can extend that app's functionality, e.g., adding tasks like cropping video, providing a graphical user interface (GUI), or automatically adjusting the display's refresh rate.[20]
- Removed features: mpv has removed support for Video CDs,[21] teletext, OSD menus, and legacy platforms.
Interface and graphical front-ends
[edit]Like the original MPlayer, mpv is primarily a command-line application. It adds a basic on-screen controller (OSC) to permit limited mouse control, but OSC is not a full-featured GUI. Numerous graphical front-ends for mpv are available, which use GUI widgets for Qt, GTK, or other toolkits to provide a more complete UI.

The following are some open source front-ends of mpv (based on "libmpv" or the command-line version of mpv) which try to provide more features and a more user-friendly interface than mpv, and/or better integration with various operating systems or desktop environments.[22]
- Baka MPlayer is a media player for 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.[23] Its development stalled in January 2017 in favor of another mpv frontend by the same developers, Mochi Player, whose development stalled the same year.[24][25]
- C-Play is a video player developed for cluster environments where users need multiple displays to display contents. The displays could be flat or curved. Supported video contents include regular flat content, 180° full-dome (fisheye), 360° equirectangular or equiangular cubemap, and stereoscopic (side-by-side or top-bottom). C-Play releases target Microsoft Windows, but the code is cross-platform, written in C++ with Qt6 QML UI.[26]
- Deepin Movie is the default video player for the Chinese Deepin distro and desktop environment.[27]
- Celluloid (formerly GNOME MPV) aims to be a simple GTK-based graphical interface for mpv on Linux that meets the GNOME Human Interface Guidelines.[28]
- Haruna Media Player is a KDE media player project for Linux and Windows, based on Qt and QML, with YouTube support and customizable shortcuts.[29]
- IINA, is a 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.[30]
- ImPlay is cross-platform media player with an interface built with the
imguiinterface library. It includes a context menu and command palette to interact with the player.[31] - Kawaii-Player is a media player and media server for Linux and Windows 10, with Qt6 widgets. Its goal is to not just be a multimedia player but also an audio/video library manager and portable media server and torrent streaming server/player.[32]
- Media Player Classic Qute Theater (MPC-QT) is a media player for Linux and Windows with Qt6 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.[33]
- mpv.net is a 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 add-ons.[34]
- OvoPlayer is a music player for Linux and Windows, written in Pascal with LCL widgetsets. Its support multiple backends, including mpv.[35]
- SMPlayer is a full-featured, cross-platform, skinable media player for Microsoft Windows, Linux and macOS, written in C++ with Qt5. Its advanced features include YouTube and Chromecast support. It can use MPlayer or mpv backends.[36]
- xt7-player-mpv is a Linux media player with Qt5 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.[37]
Subtitle Edit is a captioning app that integrates mpv into its user interface.
See also
[edit]- FFmpeg - recommended decoding library for mpv
- libavcodec – API which mpv uses for decoding
- Comparison of video player software
References
[edit]- ↑ "Contributors to mpv-player". goldeneye2.videolan.org. 2017-11-04. Archived from the original on 2021-09-15. Retrieved 2021-09-15.
- ↑ "Organization members". mpv-player. Retrieved 2026-07-06 – via GitHub.
- ↑ Lang, Vincent (2013-08-07). "Release 0.1". MPV.
- ↑ "v0.41.0". 21 December 2025. Retrieved 21 December 2025.
- ↑ "mpv-player", Analysis Summary, Open Hub, archived from the original on 2017-08-02, retrieved 2016-08-11
- ↑ "Package: mpv (0.41.0-2 and others)". packages.debian.org. SPI Inc. Retrieved 7 July 2026.
- ↑ "Copyright". mpv. Retrieved 2015-03-21.
- ↑ "mpv-android - Apps on Google Play". play.google.com. Retrieved 2020-03-28.
- ↑ "MPV, A New Fork Of MPlayer/MPlayer2". Phoronix. 5 August 2013.
- ↑ "Contributors to mpv-player/mpv". mpv-player/mpv repo. Retrieved 2016-03-21 – via GitHub.
- ↑ Lang, Vincent (8 June 2015). "LGPL relicensing (#2033)". mpv-player/mpv repo. Archived from the original on 2017-09-14 – via GitHub.
... GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL. ...
- ↑ "list of changes from MPlayer". mpv-player/mpv repo. 23 February 2025 – via GitHub.
- ↑ "yt-dlp: Supported sites". GitHub. Retrieved 2024-09-06.
- ↑ Sneddon, Joey (2017-09-13). "MPV 0.27 Released with Minor Fixes, New OpenGL Options". OMG! Ubuntu!. Ohso Ltd. Retrieved 2017-02-13.
- ↑ Larabel, Michael (2017-12-25). "MPV Player 0.28 Adds Initial Vulkan Support". Phoronix. Phoronix Media. Archived from the original on 2017-12-26. Retrieved 2017-12-26.
- ↑ "mpv manual (opengl video output driver section)". Retrieved 2016-03-21.
- ↑ "MPV.io".
- ↑ "Introducing the Plex Media Player". Retrieved 2015-03-21.
- ↑ "mpv manual (encoding section)". Retrieved 2016-03-21.
- ↑ "User Scripts". mpv-player/mpv repo. Retrieved 2016-03-21 – via GitHub.
- ↑ mpv-player (1 June 2014). "stream: remove VCD support · mpv-player/mpv@a192f32". mpv-player/mpv repo – via GitHub.
- ↑ "Applications using mpv". mpv-player/mpv repo. Retrieved 2020-12-28 – via GitHub.
- ↑ "Baka MPlayer Github page". Retrieved 2022-09-15.
- ↑ "History · mochi-player". mochi-player.github.io. Retrieved 2026-04-09.
- ↑ mochi-player. "Is Mochi-player development abandoned? · Issue #4 · mochi-player/mochi-player". GitHub. Retrieved 2026-04-09.
- ↑ "C-Play". Retrieved 2024-08-05.
- ↑ "Deepin Movie". Retrieved 2022-09-15.
- ↑ "Celluloid". Retrieved 2022-09-15.
- ↑ "Haruna media player". KDE. Retrieved 29 March 2024.
- ↑ "IINA". Retrieved 2022-09-15.
- ↑ "tsl0922/ImPlay: A Cross-Platform Desktop Media Player". GitHub. Retrieved 2024-12-12.
- ↑ "Kawaii Player Github Repository". GitHub. Retrieved 2022-09-15.
- ↑ "Media Player Classic Qute Theater". mpc-qt.github.io. Retrieved 2026-04-09.
- ↑ "mpv.net Github Repository". GitHub. Retrieved 2022-09-15.
- ↑ "OvoPlayer on Lazarus Wiki". Retrieved 2022-09-15.
- ↑ "SMPlayer". Retrieved 2022-09-15.
- ↑ "xt7-player Github Repository". GitHub. Retrieved 2022-09-15.