Mpv – A free, open-source, and cross-platform media player(mpv.io)
mpv.io
Mpv – A free, open-source, and cross-platform media player
https://mpv.io/
559 comments
I started to use it on linux a few years ago.
Now its on every device, even on my android tablet. Its perfect. Minimalistic, sane defaults, fast and just works.
It can even play natively over ssh. Its awesome
> mpv sftp://mit@nyx/home/mit/Work/merged.mp4
Recently I needed a hotkey to rotate a video (which seems not like any player can easily do this; for mpv it was a 'r cycle_values video-rotate "90" "180" "270" "0"' in the in input.conf)
Now its on every device, even on my android tablet. Its perfect. Minimalistic, sane defaults, fast and just works.
It can even play natively over ssh. Its awesome
> mpv sftp://mit@nyx/home/mit/Work/merged.mp4
Recently I needed a hotkey to rotate a video (which seems not like any player can easily do this; for mpv it was a 'r cycle_values video-rotate "90" "180" "270" "0"' in the in input.conf)
If you're on Linux, don't forget to enable hardware acceleration by adding hwdec=auto to mpv.conf. Works with AMD/Intel/NVIDIA.
https://interfacinglinux.com/2024/01/10/hardware-acceleratio...
https://interfacinglinux.com/2024/01/10/hardware-acceleratio...
This is an extremely venerable project, formerly known as
mplayer. There are half a million commits going back to 2001, and that’s just from when the CVS repo was converted to Subversion.
streamlink and mpv on a fanless Minix z100 running Ubuntu was a nigh-on perfect Olympics experience.
https://streamlink.github.io/
https://www.minix.com.hk/products/z100-0db-fanless-n100-mini...
streamlink and mpv on a fanless Minix z100 running Ubuntu was a nigh-on perfect Olympics experience.
https://streamlink.github.io/
https://www.minix.com.hk/products/z100-0db-fanless-n100-mini...
It sounds stupid but the killer feature for me is possibility to have multiple subtitles visible, all easily configurable with a few keybinds (track, offset, position, size etc). No streaming service provides this, and they actively omit subtitle languages that aren't "relevant" to your geolocation. I cannot respect a service like that.
This has always worked well for me, handling anything that’s thrown at it with ease.
Things may have changed since then, but when I first encountered the project several years ago it seemed like the thing that made this project stand out compared to other player projects was a big emphasis on correctness and accurate playback. There have files I’ve encountered that for example VLC will play with quirks (color reproduction is not quite right, etc) that mpv plays perfectly.
Things may have changed since then, but when I first encountered the project several years ago it seemed like the thing that made this project stand out compared to other player projects was a big emphasis on correctness and accurate playback. There have files I’ve encountered that for example VLC will play with quirks (color reproduction is not quite right, etc) that mpv plays perfectly.
mpv is awesome. Shout-out, in no particular order, to:
- Seeds of Might/JySzE's base `mpv.conf`[1]
- uosc, a feature-rich but still minimalist UI[2]
- thumbfast, a fast thumbnailer to be used with uosc or another custom UI[3]
- Eisa01's SmartSkip, which allows to skip intros & more (audio-based)[4]
[1] Windows: https://gist.github.com/JySzE/db4149cad726b3b6955dca8d47a197..., macOS: https://gist.github.com/JySzE/34ee131da3974811a9469e1e3b7d4d... [2] https://github.com/tomasklaen/uosc [3] https://github.com/po5/thumbfast [4] https://github.com/Eisa01/mpv-scripts#smartskip
- Seeds of Might/JySzE's base `mpv.conf`[1]
- uosc, a feature-rich but still minimalist UI[2]
- thumbfast, a fast thumbnailer to be used with uosc or another custom UI[3]
- Eisa01's SmartSkip, which allows to skip intros & more (audio-based)[4]
[1] Windows: https://gist.github.com/JySzE/db4149cad726b3b6955dca8d47a197..., macOS: https://gist.github.com/JySzE/34ee131da3974811a9469e1e3b7d4d... [2] https://github.com/tomasklaen/uosc [3] https://github.com/po5/thumbfast [4] https://github.com/Eisa01/mpv-scripts#smartskip
The best media player in existence: superb minimalist UI, makes use of hardware accelaration, and just plays videos.
Its continued excellence is one of the reasons why I will probably remain a pirate for life. Streaming services spend millions on their players and don't come close.
Its continued excellence is one of the reasons why I will probably remain a pirate for life. Streaming services spend millions on their players and don't come close.
MPV has versatile scripts. For example you can cut and crop a video you are watching[1].
You can also introduce hotkeys for functionalities I have never seen in another player.
I use this (input.conf) sometimes to normalize the brightness and colors of a scene I'm watching (may not work when using hardware decoding):
You can also introduce hotkeys for functionalities I have never seen in another player.
I use this (input.conf) sometimes to normalize the brightness and colors of a scene I'm watching (may not work when using hardware decoding):
n vf toggle normalize=smoothing=100
Or rotate a video: Ctrl+r no-osd cycle-values video-rotate "90" "180" "270" "0"
[1] <https://github.com/occivink/mpv-scripts>My favorite feature of mpv so far is being able to apply CRT shaders in real time to content. This solution also handles properly downscaling HD videos into actual 240p buffers that then gets upscaled to your screen resolution by the shader.
https://i.imgur.com/akmgzxX.png
https://github.com/hhirtz/mpv-retro-shaders
https://i.imgur.com/akmgzxX.png
https://github.com/hhirtz/mpv-retro-shaders
In my input.conf file I've created filter keyboard shortcuts:
F1 af toggle "acompressor=ratio=4,loudnorm"
F2 vf toggle "bwdif"
First one is an alright dynamic range compressor (makes the loud parts quieter and quieter parts loud). Second is a deinterlace at default settings. These are standard ffmpeg filters and mpv let's you turn these on in real time.Joining the praise in this thread. Extremely reliable, fast, versatile, plays anything.
What I haven't seen mentioned is that it has 1- or 2-key keyboard shortcuts for almost everything, down to adjusting audio/video delay, subtitle size and offset, etc etc.
Once you've had the experience of adjusting the video just how you like it in 5 seconds with a series of keypresses without having to pause or disrupt the playback, you'll never want to go back.
What I haven't seen mentioned is that it has 1- or 2-key keyboard shortcuts for almost everything, down to adjusting audio/video delay, subtitle size and offset, etc etc.
Once you've had the experience of adjusting the video just how you like it in 5 seconds with a series of keypresses without having to pause or disrupt the playback, you'll never want to go back.
I didn’t know mplayer had been forked - this looks good to me.
The primary reason why I used mplayer in the early 2000s was performance, both in terms of cpu and for lack of a better word ‘ smoothness ‘.
Basically all other players seemed to produce choppy videos ( including regular dvd players ) but mplayer didn’t ( and there was no motion interpolation). A friend of mine told me that mplayer was very accurate ( ie each frame lasted exactly the same duration), unlike most players on the market at the time and this explained the ‘smooth’ feeling.
Is this smoothness advantage still the case ? Would anyone know why it felt like that years ago ?
Basically all other players seemed to produce choppy videos ( including regular dvd players ) but mplayer didn’t ( and there was no motion interpolation). A friend of mine told me that mplayer was very accurate ( ie each frame lasted exactly the same duration), unlike most players on the market at the time and this explained the ‘smooth’ feeling.
Is this smoothness advantage still the case ? Would anyone know why it felt like that years ago ?
MPV is great for powerusers, for the vast majority of people just use VLC.
I used both over the year and there are still things that are really annoying in mpv:
- you can't render on a Chromecast
- opening a file that does not work does nothing, you don't know what's happening, is the file corrupted, is the codec not supported ??
- the no ui idea is nice for opening a single file, but then you go to the rabbithole of millions of settings / config to do anything more complicated, playlists? ( why can't I drag and drop on the window )
- it's hard to compile, so it's up to you to find up to date version on your distro
I used both over the year and there are still things that are really annoying in mpv:
- you can't render on a Chromecast
- opening a file that does not work does nothing, you don't know what's happening, is the file corrupted, is the codec not supported ??
- the no ui idea is nice for opening a single file, but then you go to the rabbithole of millions of settings / config to do anything more complicated, playlists? ( why can't I drag and drop on the window )
- it's hard to compile, so it's up to you to find up to date version on your distro
If anyone is looking for the mpv core with a GUI on macOS, take a look at IINA https://github.com/iina/iina
It's excellent with companion tools as well. For example...
Streamlink, for watching live streams without a web browser:
https://streamlink.github.io/
Syncplay, for remote movie parties:
https://syncplay.pl/about/syncplay/
Streamlink, for watching live streams without a web browser:
https://streamlink.github.io/
Syncplay, for remote movie parties:
https://syncplay.pl/about/syncplay/
Mac users can get a very nice front end to mpv with https://iina.io
Bonus trivia: Plex Media Player uses mpv as the video player
Bonus trivia: Plex Media Player uses mpv as the video player
One of the nice things about MPV is that you can apply FFMpeg filters at playback, allowing you to use a wide range of transformations on a source video without having to re-render it for each variation.
We're using inexpensive industrial mini-PCs, Alpine Linux, and MPV as a custom digital signage solution at my company, and centrally managing them via Ansible.
We're using inexpensive industrial mini-PCs, Alpine Linux, and MPV as a custom digital signage solution at my company, and centrally managing them via Ansible.
Can it do smooth scrubbing (i.e. scrolling the progress bar)?
So many media players only show the key frames when scrubbing, making it a much less pleasant experience. Some mobile phones (Apple, Samsung) built-in media players seem to do it nicely, but I've never found a desktop media player that does it (VLC can't).
Probably would require a lot of extra decoding behind the scenes to extract all the frames, but worth it on a modern machine.
So many media players only show the key frames when scrubbing, making it a much less pleasant experience. Some mobile phones (Apple, Samsung) built-in media players seem to do it nicely, but I've never found a desktop media player that does it (VLC can't).
Probably would require a lot of extra decoding behind the scenes to extract all the frames, but worth it on a modern machine.
I love their section on how to embed mpv in other apps [1]. Too bad there's not an XEmbed equivalent for Wayland [2].
[1] https://github.com/mpv-player/mpv-examples/blob/master/libmp...
[2] https://github.com/mpv-player/mpv/issues/9654
[1] https://github.com/mpv-player/mpv-examples/blob/master/libmp...
[2] https://github.com/mpv-player/mpv/issues/9654
Cannot recommend --video-sync=display-resample enough. The one reason I use mpv on every OS over every other media player
I have been using mpv on Linux for like 10 years, it's simply amazing. No complaint, it just works.
Highly recommended.
Highly recommended.
One cool thing about mpv is that it can transcode audio encoded in different surround sound formats (AAC, FLAC, Atmos, etc.) into regular Dolby Digital for use with old pre HDMI AVRs using SPDIF. AFAIK it's the only player that can do this natively without any additional work on the OS level.
I'll just add this here but if you want this kind of transcoding for the entire system rather than just mpv you can use dcaenc with its virtual 6 channel input encoding everything to DTS. I send the encoded audio to the AVR using a cheap TI PCM27XX sound card with optical output.
I'll just add this here but if you want this kind of transcoding for the entire system rather than just mpv you can use dcaenc with its virtual 6 channel input encoding everything to DTS. I send the encoded audio to the AVR using a cheap TI PCM27XX sound card with optical output.
libmpv is also amazing. It's a simple C API that allows you to render each frame into an OpenGL framebuffer or pixel array, using a fully hardware-accelerated path for the former.
What I like most about mpv is how you can control it through its socket. Often times I will play a movie or tv show on a separate monitor, so being able to pause or rewind or change volume without switching workspaces is important. I have in my i3 config, keybindings so I can easily control mpv with my keyboard: https://github.com/ediw8311xht/dotfiles/blob/6a765910ab5ac17...
Additionally, mpv has a powerful script system. One of my favorite scripts is fast foward through intro, which is crucial for watching a tv show. https://github.com/rui-ddc/skip-intro. Another nice script is https://github.com/familyfriendlymikey/mpv-cut, which enables creating clips in mpv. There are a ton of other useful scripts, and its not difficult to create a custom script yourself using lua.
Mpv automatically resuming is also nice for watching tv shows or movies. Only problem is that if you shutdown mpv through killing the window then automatically resuming from history gets messed up.
Additionally, mpv has a powerful script system. One of my favorite scripts is fast foward through intro, which is crucial for watching a tv show. https://github.com/rui-ddc/skip-intro. Another nice script is https://github.com/familyfriendlymikey/mpv-cut, which enables creating clips in mpv. There are a ton of other useful scripts, and its not difficult to create a custom script yourself using lua.
Mpv automatically resuming is also nice for watching tv shows or movies. Only problem is that if you shutdown mpv through killing the window then automatically resuming from history gets messed up.
Is this worth a look when you are pretty happy with VLC already?
Love the message when attempting to open a multi-volume rar video.
[libarchive] This appears to be a multi-volume archive.
[libarchive] Support is not very good due to libarchive limitations.
[libarchive] There are known cases of libarchive crashing mpv on these.
[libarchive] This is also an excessively inefficient and stupid way to distribute
[libarchive] media files. People creating them should rethink this.
[libarchive] This appears to be a multi-volume archive.
[libarchive] Support is not very good due to libarchive limitations.
[libarchive] There are known cases of libarchive crashing mpv on these.
[libarchive] This is also an excessively inefficient and stupid way to distribute
[libarchive] media files. People creating them should rethink this.
mpv is the most active fork/evolution of the historical "mplayer" player of yesteryear. I've been using this program in one form or another for probably 20 years now. It's great; highly recommend.
This is S tier software. I remember using this on a laptop with 2gb RAM years ago. The combo of mpv and youtube-dl could deal with large number of sites (not just youtube), when even the browser struggled.
You can use mpv on the framebuffer-terminal.
Pass the option —vo=drm and it works flawlessly with free drivers for AMD, Intel or Nvidia.
Pass the option —vo=drm and it works flawlessly with free drivers for AMD, Intel or Nvidia.
Also has a fantastic commit where the author rants about locales: https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02... worth a read for some chuckles.