Mpv (media player)#Interface and graphical front-ends

{{Short description|Free and open-source media player software}}

{{Primary sources|date=May 2024}}

{{lowercase title}}

{{Infobox software

| name = mpv

| logo = Mpv logo (official).png

| logo size = 100px

| logo alt =

| logo caption =

| screenshot = File:Mpv 0.32 on Linux.png

| screenshot alt =

| caption = mpv on Linux, playing Spring

| author = Vincent Lang,{{cite web |url=https://goldeneye2.videolan.org/rossy/libplacebo/-/tree/v0.1.1 |title=Contributors to mpv-player |date=2017-11-04 |website=GitHub |access-date=2021-09-15 |archive-date=2021-09-15 |archive-url=https://web.archive.org/web/20210915020144/https://goldeneye2.videolan.org/rossy/libplacebo/-/tree/v0.1.1 |url-status=dead }} MPlayer and mplayer2 developers

| developer = Community

| released = {{Start date and age|2013|08|07}}{{cite web |url=https://github.com/mpv-player/mpv/releases/tag/v0.1.0 |title=Release 0.1 |publisher=MPV |author=wm4 |date=2013-08-07}}

| discontinued =

| latest release version = {{wikidata|property|preferred|references|edit|Q20760334|P348|P548=Q2804309}}

| latest release date = {{wikidata|qualifier|preferred|single|Q20760334|P348|P548=Q2804309|P577}}

| latest preview version = {{wikidata|property|preferred|references|edit|Q20760334|P348|P548=Q51930650}}

| latest preview date = {{wikidata|qualifier|preferred|single|Q20760334|P348|P548=Q51930650|P577}}

| programming language = C, Objective-C, Lua{{citation |url=https://www.openhub.net/p/mpv-player |publisher=Open Hub |work=Analysis Summary |title=mpv-player |access-date=2016-08-11 |archive-url=https://web.archive.org/web/20170802102145/https://www.openhub.net/p/mpv-player |archive-date=2017-08-02 |url-status=dead }}

| operating system = BSD-based, Linux, macOS, Windows

| platform = ARM, MIPS, PowerPC, RISC-V, s390x, x86 / IA-32 and x86-64 / AMD64

| size = Source code: {{Nowrap|2.9 MB}} (tar.gz)

| language =

| language count =

| language footnote =

| genre = Media player

| license = GPLv2+, parts under LGPLv2.1+, some optional parts under GPLv3{{cite web|url=https://github.com/mpv-player/mpv/blob/master/Copyright|title=Copyright|publisher=mpv|access-date=2015-03-21}}

| alexa =

| website = {{Official URL}}

| standard =

| AsOf =

}}

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.{{Cite web|url=https://play.google.com/store/apps/details?id=is.xyz.mpv&hl=en_US|title=mpv-android - Apps on Google Play|website=play.google.com|language=en|access-date=2020-03-28}} It is cross-platform, running on ARM, MIPS, PowerPC, RISC-V, s390x, x86/IA-32, x86-64, and some other by 3rd party.[https://packages.debian.org/sid/mpv#pdownload Debian - Details of package mpv]

History

mpv was forked by Vincent Lang, also known as wm4, in 2012 from mplayer2, which was forked in 2010 from MPlayer.{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=MTQyODQ|title=MPV, A New Fork Of MPlayer/MPlayer2|publisher=Phoronix|access-date=2015-01-28}} 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.{{cite web|url=https://github.com/mpv-player/mpv/graphs/contributors|title=Contributors to mpv-player/mpv|website=GitHub |access-date=2016-03-21}}

Since June 2015, the project's source code is being relicensed from GNU General Public License version 2 or later (GPLv2+) to GNU Lesser General Public License version 2.1 or later (LGPLv2.1+) to allow using mpv as a library in more applications.{{cite web|url=https://github.com/mpv-player/mpv/issues/2033|title=LGPL relicensing (#2033)|author=wm4|website=mpv-player/mpv (source code repository)|publisher=GitHub|access-date=2017-09-14|archive-date=2017-09-14|archive-url=https://web.archive.org/web/20170914153346/https://github.com/mpv-player/mpv/issues/2033|url-status=live|quote=... GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL. ...}}

Changes from MPlayer

mpv has had several notable changes{{cite web |url=https://github.com/mpv-player/mpv/blob/master/DOCS/mplayer-changes.rst |title=list of changes from MPlayer |website=GitHub |access-date=2018-04-05}} 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 using yt-dlp, mpv natively supports playback of high-definition video (HD) content and audio on YouTube and over 1000 other supported sites.{{cite web |title=yt-dlp: Supported sites |website=GitHub |url=https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md |access-date=2024-09-06}} This allows mpv to replace site-specific video players based on HTML5.
  • High quality video output: mpv includes a custom video output driver based on OpenGL{{Cite news |title=MPV 0.27 Released with Minor Fixes, New OpenGL Options |url=https://www.omgubuntu.co.uk/2017/09/mpv-0-27-released |last1=Sneddon |first1=Joey |date=2017-09-13 |website=OMG! Ubuntu! |publisher=Ohso Ltd. |access-date=2017-02-13}} as well as the Vulkan API,{{Cite news |title=MPV Player 0.28 Adds Initial Vulkan Support |url=https://www.phoronix.com/scan.php?page=news_item&px=MPV-Player-0.28-Released |last1=Larabel |first1=Michael |date=2017-12-25 |website=Phoronix |publisher=Phoronix Media |archive-url=https://web.archive.org/web/20171226004412/https://www.phoronix.com/scan.php?page=news_item&px=MPV-Player-0.28-Released |archive-date=2017-12-26 |url-status=live |access-date=2017-12-26}} which supports over 100 options for controlling playback quality, including the use of advanced upscaling filters, color management, and customizable pixel shaders.{{cite web|url=https://mpv.io/manual/master/#video-output-drivers-opengl|title=mpv manual (opengl video output driver section)|access-date=2016-03-21}}
  • 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.{{Cite web|url=https://mpv.io/manual/master/|title = MPV.io}}
  • 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. Plex is an example of an application that makes use of this functionality.{{cite web|url=https://blog.plex.tv/2015/10/20/introducing-the-plex-media-player/|title=Introducing the Plex Media Player|access-date=2015-03-21}} As a result, all mpv code is required to be 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 be used to save files being played under different formats. This allows mpv to work as a transcoder, supporting many video formats.{{cite web|url=https://mpv.io/manual/master/#encoding|access-date=2016-03-21|title=mpv manual (encoding section)}} 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.{{cite web|url=https://github.com/mpv-player/mpv/wiki/User-Scripts|title=User Scripts - mpv-player/mpv Wiki|website=GitHub |access-date=2016-03-21}}

=Removed functions=

  • all support for VCD discs

Interface and graphical front-ends

Like the original MPlayer, 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-featured GUI, and there are a number of graphical front-ends 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.{{Cite web|title=Applications using mpv|website=GitHub |url=https://github.com/mpv-player/mpv/wiki/Applications-using-mpv|access-date=2020-12-28}}

  • 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.{{Cite web|title=Baka MPlayer Github page|url=https://u8sand.github.io/Baka-MPlayer/|access-date=2022-09-15}} 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.{{Cite web|title=C-Play|url=https://c-toolbox.github.io/C-Play/|access-date=2024-08-05}}
  • Deepin Movie - for Linux - Written by and default video player for the Chinese Deepin distro and desktop environment.{{Cite web|title=Deepin Movie|url=https://www.deepin.org/en/original/deepin-movie/|access-date=2022-09-15}}

File:GNOME MPV (Celluloid) 0.18 with its preferences.png

  • 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.{{Cite web|title=Celluloid|url=https://celluloid-player.github.io/|access-date=2022-09-15}}
  • Haruna Media Player - for Linux, Windows - based on Qt/QML. A KDE media player project with YouTube support and customizable shortcuts. {{cite web |title=Haruna media player |url=https://haruna.kde.org/ |website=KDE |access-date=29 March 2024}}
  • 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.{{Cite web|title=IINA|url=https://iina.io/|access-date=2022-09-15}}
  • 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.{{Cite web |title=tsl0922/ImPlay: A Cross-Platform Desktop Media Player |url=https://github.com/tsl0922/ImPlay |access-date=2024-12-12 |website=GitHub}}
  • 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.{{Cite web|title=Kawaii Player Github Repository|website=GitHub |url=https://github.com/kanishka-linux/kawaii-player|access-date=2022-09-15}}
  • 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.{{Cite web|title=mpv.net Github Repository|website=GitHub |url=https://github.com/stax76/mpv.net|access-date=2022-09-15}}
  • 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.{{Cite web|title=OvoPlayer on Lazarus Wiki|url=https://wiki.freepascal.org/OvoPlayer|access-date=2022-09-15}}
  • 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.{{Cite web|title=SMPlayer|url=https://www.smplayer.info/|access-date=2022-09-15}}
  • 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.{{Cite web|title=Sugoi Player Github Repository|website=GitHub |url=https://github.com/wangwenx190/sugoi-player-deprecated/blob/master/README.md|access-date=2022-09-15}}
  • 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.{{Cite web|title=xt7-player Github Repository|website=GitHub |url=https://github.com/kokoko3k/xt7-player-mpv|access-date=2022-09-15}}

See also

{{Portal|Free and open-source software}}

References

{{Reflist|30em}}