Mpv (media player) explained
mpv |
Logo Size: | 100px |
Author: | Vincent Lang,[1] MPlayer and mplayer2 developers |
Developer: | Community |
Released: | [2] |
Programming Language: | C, Objective-C, Lua |
Operating System: | BSD-based, Linux, macOS, Windows |
Platform: | ARM, PowerPC, x86 / IA-32, x86-64, and MIPS architecture |
Size: | Source code: (tar.gz) |
Genre: | Media player |
License: | GPLv2+, parts under LGPLv2.1+, some optional parts under GPLv3[3] |
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.[4] 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.[6] 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.[7]
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.[8]
Changes from MPlayer
mpv has had several notable changes[9] 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.[10] 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[11] as well as the Vulkan API,[12] which supports over 100 options for controlling playback quality, including the use of advanced upscaling filters, color management, and customizable pixel shaders.[13]
- 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.[14]
- 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.[15] 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.[16] 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.[17]
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.[18]
- 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.[19] 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.[20]
- Deepin Movie - for Linux - Written by and default video player for the Chinese Deepin distro and desktop environment.[21]
- 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.[22]
- Haruna Media Player - for Linux, Windows - based on Qt/QML. A KDE media player project with YouTube support and customizable shortcuts. [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
Notes and References
- Web site: Contributors to mpv-player . 2017-11-04 . . 2021-09-15 . 2021-09-15 . https://web.archive.org/web/20210915020144/https://goldeneye2.videolan.org/rossy/libplacebo/-/tree/v0.1.1 . dead .
- Web site: Release 0.1 . MPV . wm4 . 2013-08-07.
- Web site: Copyright. mpv. 2015-03-21.
- Web site: mpv-android - Apps on Google Play. play.google.com. en. 2020-03-28.
- https://packages.debian.org/stretch/mpv#pdownload Debian - Details of package mpv
- Web site: MPV, A New Fork Of MPlayer/MPlayer2. Phoronix. 2015-01-28.
- Web site: Contributors to mpv-player/mpv. . 2016-03-21.
- Web site: LGPL relicensing (#2033). wm4. mpv-player/mpv (source code repository). GitHub. 2017-09-14. 2017-09-14. https://web.archive.org/web/20170914153346/https://github.com/mpv-player/mpv/issues/2033. live. ... GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL. ....
- Web site: list of changes from MPlayer . . 2018-04-05.
- Web site: youtube-dl: Supported sites. 2016-03-21.
- News: MPV 0.27 Released with Minor Fixes, New OpenGL Options . Sneddon . Joey . 2017-09-13 . . Ohso Ltd. . 2017-02-13.
- News: MPV Player 0.28 Adds Initial Vulkan Support . Larabel . Michael . 2017-12-25 . . Phoronix Media . https://web.archive.org/web/20171226004412/https://www.phoronix.com/scan.php?page=news_item&px=MPV-Player-0.28-Released . 2017-12-26 . live . 2017-12-26.
- Web site: mpv manual (opengl video output driver section). 2016-03-21.
- Web site: MPV.io.
- Web site: Introducing the Plex Media Player. 2015-03-21.
- Web site: mpv manual (encoding section). 2016-03-21.
- Web site: User Scripts - mpv-player/mpv Wiki. . 2016-03-21.
- Web site: Applications using mpv. . 2020-12-28.
- Web site: Baka MPlayer Github page. 2022-09-15.
- Web site: C-Play. 2024-08-05.
- Web site: Deepin Movie. 2022-09-15.
- Web site: Celluloid. 2022-09-15.
- Web site: Haruna media player . KDE . 29 March 2024.
- Web site: IINA. 2022-09-15.
- Web site: Kawaii Player Github Repository. . 2022-09-15.
- Web site: mpv.net Github Repository. . 2022-09-15.
- Web site: OvoPlayer on Lazarus Wiki. 2022-09-15.
- Web site: SMPlayer. 2022-09-15.
- Web site: Sugoi Player Github Repository. . 2022-09-15.
- Web site: xt7-player Github Repository. . 2022-09-15.