mpv is the best pure no-fuzz video player for Linux. It will play anything video file you throw at it. It is also available for Windows, MacOS and Android. It is just a video player, it does not have menus or toolbars or things of that nature. Basics controls are available in a on-screen overlay display.
What it is and isn't
mpv is a video player which will open a video and play it. It does not have additional features. At all. There is no graphical playlist function, there is no button for open files or network URLs or anything like that. You can open a file using your file manager or a terminal and play it with mpv and that is how you use it. You can play network URLs and playlists with it using those things and command-line arguments.
Moving the mouse above a video playing in mpv makes a on-screen navigational interface appear. It is limited to jumping to a specific time on a timeline, play, pause, volume and mute, toggling subtitles on or off and there is also a fullscreen toggle button. Not that you'll need it, pressing
f to toggle
fullscreen is quicker.
There are more feature-rich programs like SMPlayer which use mpv for the actual video playback while providing a graphical interface with menus and toolbars and icons.
You will probably have to add a third party repository to your distribution to get (a proper) mpv. That would be rpmfusion in the case of Fedora and CentOS.
Some configuration is recommended
mpv is highly configurable using the configuration file
$HOME/.config/mpv/mpv.conf and there are a lot of examples of mpv configuration files floating around the Internets. While you strictly do not need to have a mpv.conf you may want to consider using the following examples if you do not have one.
All the examples use
hwdec=vaapi. vaapi is Intel technology but it is also the best interface for hardware decoding on AMD graphics because vdpau can not do 10-bit HEVC video and vaapi can.
mpv.conf for older and weak Intel iGPU systems and older AMD APUs, specially older laptops
We recommend this configuration file for very weak machines and older laptops:
This configuration requests that
vaapi is used for both hardware video decoding when available and video output. This is the least possible resource-demanding
vo= option. It is more battery-friendly than using
vo=vaapi is not recommended unless your hardware is weak enough to warrant it.
mpv.conf for typical Intel iGPU systems and AMD APUs
This is fine for newer desktops and laptops with a Intel iGPU as well as AMD APUs.
mpv.conf for dedicated AMD graphics cards
mpv.conf files for Windows
See the dedicated page Mpv configuration for Windows.
mpv has some features which do not have any default key-bindings. It is possible to configure (a lot) more keyboard shortcuts using a configuration file called
It could look like this:
It is possible to expand mpv's functionality with userscripts. These can add useful features like playlist management, automatic cropping of black bars when detected and much, much more.
There are a lot of userscripts available at https://github.com/mpv-player/mpv/wiki/User-Scripts
- mpv's homepage is at https://mpv.io/
- There is a mpv keyboard-shortcut cheat-sheet at https://i.imgur.com/LNGJf4u.png
- you can read the fine manual at https://man.linuxreviews.org/man1/mpv.1.html
|Celluloid||GTK||mpv||Has a playlist. Otherwise very limited.|
|GNOME Videos||GTK/GNOME||GStreamer||Useless GUI, problems playing a lot of files|
|mpv||libmpv||On-screen controls. No playlist, no GUI. Plays everything.|
|Parole||GTK||GStreamer||Very basic media player. No features what so ever.|
|SMPlayer||Qt||mpv||Fully featured. Playlist, advanced playback options, easy to use.|
|VLC||libvlc||Fully featured. Playlist, advanced playback options, video conversion, live stream recording|