Software:mpv (media player)

From HandWiki
Short description: Free and open-source media player software

mpv
Mpv logo (official).png
Mpv 0.34 screenshot.png
mpv 0.34 on Linux, playing Sprite Fright (2021 film)
Original author(s)Vincent Lang,[1] MPlayer and mplayer2 developers
Developer(s)Community
Initial releaseAugust 7, 2013; 10 years ago (2013-08-07)[2]
Stable release0.34.0 (November 1, 2021; 2 years ago (2021-11-01)[3]) [±]
Written inC, Objective-C, Lua[4]
Operating systemBSD-based, Linux, macOS, Windows
PlatformARM, PowerPC, x86 / IA-32, x86-64, and MIPS architecture[5]
SizeSource code: 2.9 MB (tar.gz)
TypeMedia player
LicenseGPLv2+, parts under LGPLv2.1+, some optional parts under GPLv3[6]
Website{{{1}}}

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.[7] It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.[5]

History

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]

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.[10]

Changes from MPlayer

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.
  • High quality video output: mpv includes a customizable video output driver based on OpenGL[13] as well as the Vulkan API,[14] which supports over 100 options for controlling playback quality, including the use of advanced upscaling filters, color management, and customizable pixel shaders.[15]
  • 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]

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 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 quite finished yet.
  • Deepin Movie - for Linux - Written by and default video player for the Chinese Deepin distro and desktop environment.[22]
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.[23]
  • 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.[24]
  • 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.[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.[26]
  • 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.[27]
  • 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.[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.[29]
  • 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.[30]

See also

References

  1. "Contributors to mpv-player". 2017-11-04. https://goldeneye2.videolan.org/rossy/libplacebo/-/tree/v0.1.1. 
  2. wm4 (2013-08-07). "Release 0.1". MPV. https://github.com/mpv-player/mpv/releases/tag/v0.1.0. 
  3. "Release v0.34.0". GitHub. https://github.com/mpv-player/mpv/releases/tag/v0.34.0. 
  4. "mpv-player", Analysis Summary (Open Hub), https://www.openhub.net/p/mpv-player, retrieved 2016-08-11 
  5. 5.0 5.1 Debian - Details of package mpv
  6. "Copyright". mpv. https://github.com/mpv-player/mpv/blob/master/Copyright. 
  7. "mpv-android - Apps on Google Play" (in en). https://play.google.com/store/apps/details?id=is.xyz.mpv&hl=en_US. 
  8. "MPV, A New Fork Of MPlayer/MPlayer2". Phoronix. https://www.phoronix.com/scan.php?page=news_item&px=MTQyODQ. 
  9. "Contributors to mpv-player/mpv". https://github.com/mpv-player/mpv/graphs/contributors. 
  10. wm4. "LGPL relicensing (#2033)". GitHub. https://github.com/mpv-player/mpv/issues/2033. "... GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL. ..." 
  11. "list of changes from MPlayer". https://github.com/mpv-player/mpv/blob/master/DOCS/mplayer-changes.rst. 
  12. "youtube-dl: Supported sites". https://rg3.github.io/youtube-dl/supportedsites.html. 
  13. Sneddon, Joey (2017-09-13). "MPV 0.27 Released with Minor Fixes, New OpenGL Options". Ohso Ltd.. https://www.omgubuntu.co.uk/2017/09/mpv-0-27-released. 
  14. Larabel, Michael (2017-12-25). "MPV Player 0.28 Adds Initial Vulkan Support". Phoronix Media. https://www.phoronix.com/scan.php?page=news_item&px=MPV-Player-0.28-Released. 
  15. "mpv manual (opengl video output driver section)". https://mpv.io/manual/master/#video-output-drivers-opengl. 
  16. "MPV.io". https://mpv.io/manual/master/. 
  17. "Introducing the Plex Media Player". https://blog.plex.tv/2015/10/20/introducing-the-plex-media-player/. 
  18. "mpv manual (encoding section)". https://mpv.io/manual/master/#encoding. 
  19. "User Scripts - mpv-player/mpv Wiki". https://github.com/mpv-player/mpv/wiki/User-Scripts. 
  20. "Applications using mpv". https://github.com/mpv-player/mpv/wiki/Applications-using-mpv. 
  21. "Baka MPlayer Github page". https://u8sand.github.io/Baka-MPlayer/. 
  22. "Deepin Movie". https://www.deepin.org/en/original/deepin-movie/. 
  23. "Celluloid". https://celluloid-player.github.io/. 
  24. "IINA". https://iina.io/. 
  25. "Kawaii Player Github Repository". https://github.com/kanishka-linux/kawaii-player. 
  26. "mpv.net Github Repository". https://github.com/stax76/mpv.net. 
  27. "OvoPlayer on Lazarus Wiki". https://wiki.freepascal.org/OvoPlayer. 
  28. "SMPlayer". https://www.smplayer.info/. 
  29. "Sugoi Player Github Repository". https://github.com/wangwenx190/sugoi-player-deprecated/blob/master/README.md. 
  30. "xt7-player Github Repository". https://github.com/kokoko3k/xt7-player-mpv. 

External links