Misplaced Pages

mpv (media player)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Free and open-source media player software
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "Mpv" media player – news · newspapers · books · scholar · JSTOR (May 2024) (Learn how and when to remove this message)
mpv
mpv 0.34 on Linux, playing Sprite Fright (2021 film)
Original author(s)Vincent Lang, MPlayer and mplayer2 developers
Developer(s)Community
Initial releaseAugust 7, 2013; 11 years ago (2013-08-07)
Stable release0.39.0 Edit this on Wikidata / 23 September 2024
Repository
Written inC, Objective-C, Lua
Engine
  • FFmpeg
Edit this at Wikidata
Operating systemBSD-based, Linux, macOS, Windows
PlatformARM, MIPS, PowerPC, RISC-V, s390x, x86 / IA-32 and x86-64 / AMD64
SizeSource code: 2.9 MB (tar.gz)
TypeMedia player
LicenseGPLv2+, parts under LGPLv2.1+, some optional parts under GPLv3
Websitempv.io Edit this at Wikidata

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems (Linux, BSD-based, macOS) and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, MIPS, PowerPC, RISC-V, s390x, x86/IA-32, x86-64, and some other by 3rd party.

History

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.

Since June 2015, the project's source code is in the process of being relicensed from GNU General Public License version 2 (GPLv2) or later to GNU Lesser General Public License version 2.1 (LGPLv2.1) or later to allow using mpv as a library in more applications.

Changes from MPlayer

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.

  • Video websites: By using yt-dlp, mpv natively supports playback of high-definition video (HD) content and audio on YouTube and over 1000 other supported sites. This allows mpv to replace site-specific video players based on HTML5.
  • High quality video output: mpv includes a customizable video output driver based on OpenGL as well as the Vulkan API, which supports over 100 options for controlling playback quality, including the use of advanced upscaling filters, color management, and customizable pixel shaders.
  • 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.
  • 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".
  • 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. 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.

Removed functions

  • all support for VCD discs

Interface and graphical front-ends

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 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.

  • 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 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 for Microsoft Windows, but the code is cross-platform, written in C++ with Qt6/Qt5 QML UI.
  • Deepin Movie - for Linux - Written by and default video player for the Chinese Deepin distro and desktop environment.
GNOME MPV (Celluloid) 0.18 with its preferences
  • 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.
  • Haruna Media Player - for Linux, Windows - based on Qt/QML. A KDE media player project with YouTube support and customizable shortcuts.
  • 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.
  • 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.
  • Kawaii-Player - Linux and Windows 10 - media player and media server with Qt5 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.
  • 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.
  • OvoPlayer - Linux and Windows music player that supports many backends, based on LCL widgetsets, written in Pascal. Its goal is to be a flexible audio player that supports as many audio engine backends like mpv as possible.
  • SMPlayer - full-featured, cross-platform and skinable with advanced features and YouTube and Chromecast support that can use MPlayer or mpv. Available for Microsoft Windows, Linux and macOS, and written in C++ with Qt4/Qt5.
  • 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.

See also

References

  1. "Contributors to mpv-player". GitHub. 2017-11-04. Archived from the original on 2021-09-15. Retrieved 2021-09-15.
  2. wm4 (2013-08-07). "Release 0.1". MPV.{{cite web}}: CS1 maint: numeric names: authors list (link)
  3. "v0.39.0". 23 September 2024. Retrieved 30 September 2024.
  4. "mpv-player", Analysis Summary, Open Hub, archived from the original on 2017-08-02, retrieved 2016-08-11
  5. ^ Debian - Details of package mpv
  6. "Copyright". mpv. Retrieved 2015-03-21.
  7. "mpv-android - Apps on Google Play". play.google.com. Retrieved 2020-03-28.
  8. "MPV, A New Fork Of MPlayer/MPlayer2". Phoronix. Retrieved 2015-01-28.
  9. "Contributors to mpv-player/mpv". GitHub. Retrieved 2016-03-21.
  10. 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)
  11. "list of changes from MPlayer". GitHub. Retrieved 2018-04-05.
  12. "yt-dlp: Supported sites". GitHub. Retrieved 2024-09-06.
  13. Sneddon, Joey (2017-09-13). "MPV 0.27 Released with Minor Fixes, New OpenGL Options". OMG! Ubuntu!. Ohso Ltd. Retrieved 2017-02-13.
  14. 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.
  15. "mpv manual (opengl video output driver section)". Retrieved 2016-03-21.
  16. "MPV.io".
  17. "Introducing the Plex Media Player". Retrieved 2015-03-21.
  18. "mpv manual (encoding section)". Retrieved 2016-03-21.
  19. "User Scripts - mpv-player/mpv Wiki". GitHub. Retrieved 2016-03-21.
  20. "Applications using mpv". GitHub. Retrieved 2020-12-28.
  21. "Baka MPlayer Github page". Retrieved 2022-09-15.
  22. "C-Play". Retrieved 2024-08-05.
  23. "Deepin Movie". Retrieved 2022-09-15.
  24. "Celluloid". Retrieved 2022-09-15.
  25. "Haruna media player". KDE. Retrieved 29 March 2024.
  26. "IINA". Retrieved 2022-09-15.
  27. "tsl0922/ImPlay: A Cross-Platform Desktop Media Player". GitHub. Retrieved 2024-12-12.
  28. "Kawaii Player Github Repository". GitHub. Retrieved 2022-09-15.
  29. "mpv.net Github Repository". GitHub. Retrieved 2022-09-15.
  30. "OvoPlayer on Lazarus Wiki". Retrieved 2022-09-15.
  31. "SMPlayer". Retrieved 2022-09-15.
  32. "Sugoi Player Github Repository". GitHub. Retrieved 2022-09-15.
  33. "xt7-player Github Repository". GitHub. Retrieved 2022-09-15.

External links

Media player software
Free software
Windows
Linux
active
inactive
Cross-platform
active
inactive
Freeware
Windows
Cross-platform
Commercial (proprietary)
Windows
macOS
Mobile
Lists
Categories: