mpv – Free and Open Source Media Player

4.8 Stars
Version 0.37.x
20-50 MB
mpv – Free and Open Source Media Player

Introduction to mpv

mpv is a free, open-source, cross-platform media player based on MPlayer and mplayer2. Renowned for its minimalist interface and powerful command-line capabilities, mpv focuses on delivering high-quality playback with extensive format support through FFmpeg. The software is particularly popular among power users and those who appreciate a lightweight, scriptable media player without unnecessary bloat.

mpv excels at video playback with features like hardware decoding, HDR support, interpolation for smooth playback, and extensive configuration options. Its Lua scripting support allows creating custom functionality and integrations, while the libmpv library enables embedding mpv into other applications.

Key Features

mpv provides GPU-accelerated video output, HDR display support, audio visualization, subtitles with styling, playlist support, and an extensive library of keyboard shortcuts. Advanced features include video interpolation for higher refresh rates, debanding filters, color correction, and screenshot functionality with various formats.

Installation on Linux

# Ubuntu/Debian
sudo apt install mpv

# Fedora
sudo dnf install mpv

# Arch Linux
sudo pacman -S mpv

# Via Flatpak
flatpak install flathub io.mpv.Mpv

# Build from source
git clone https://github.com/mpv-player/mpv.git
cd mpv
meson setup build
ninja -C build
sudo ninja -C build install

Installation on Windows

# Via Winget
winget install mpv.net

# Via Chocolatey
choco install mpv

# Via Scoop
scoop install mpv

# Manual: Download from mpv.io
# Extract and add to PATH

Installation on macOS

# Via Homebrew
brew install mpv

# GUI wrapper (IINA based on mpv)
brew install --cask iina

Basic Usage

# Play file
mpv video.mp4

# Play multiple files
mpv video1.mp4 video2.mp4

# Play URL
mpv https://example.com/video.mp4

# Play playlist
mpv --playlist=playlist.m3u

# Play DVD
mpv dvd://

# Play Blu-ray
mpv bd://

Keyboard Controls

# Playback
Space           Play/Pause
Q               Quit
q               Quit (save position)
< / >           Previous/Next in playlist
Enter           Next in playlist

# Seeking
Left/Right      Seek 5 seconds
Up/Down         Seek 60 seconds
Ctrl+Left/Right Seek 10 seconds
Page Up/Down    Seek 10 minutes

# Volume
9 / 0           Volume down/up
m               Mute

# Video
f               Toggle fullscreen
s               Screenshot
S               Screenshot (no subs)
Ctrl+s          Screenshot (window)

# Subtitles
v               Toggle subtitles
j / J           Cycle subtitles
z / Z           Subtitle delay +/- 0.1s

# Audio
# / *           Cycle audio tracks
Ctrl+Left/Right Audio delay

Configuration

# Config file location:
# Linux: ~/.config/mpv/mpv.conf
# Windows: %APPDATA%/mpv/mpv.conf
# macOS: ~/.config/mpv/mpv.conf

# Example mpv.conf:
# Video
vo=gpu
hwdec=auto
profile=gpu-hq

# Audio
volume=100
volume-max=150
audio-file-auto=fuzzy

# Subtitles
sub-auto=fuzzy
sub-file-paths=subs:Subs:subtitles

# OSD
osd-bar=no
osd-font-size=32

# Screenshots
screenshot-format=png
screenshot-directory=~/Pictures/mpv

Hardware Acceleration

# Enable hardware decoding
mpv --hwdec=auto video.mp4

# Specific decoders:
# vaapi (Linux/Intel/AMD)
# nvdec (NVIDIA)
# dxva2/d3d11va (Windows)
# videotoolbox (macOS)

# Config:
hwdec=auto-safe
gpu-api=vulkan

Video Filters

# Apply filter
mpv --vf=filter video.mp4

# Common filters:
--vf=hflip                  Horizontal flip
--vf=vflip                  Vertical flip
--vf=rotate=90              Rotate
--vf=crop=w:h:x:y           Crop
--vf=scale=1920:1080        Scale
--vf=deband                 Reduce banding
--vf=interpolation          Motion interpolation

# Chained filters
--vf=deband,scale=1920:-1

Scripting

# Script location:
# ~/.config/mpv/scripts/

# Lua example (autoload.lua):
# Automatically loads related files

# Input bindings (~/.config/mpv/input.conf):
WHEEL_UP    add volume 2
WHEEL_DOWN  add volume -2
Ctrl+LEFT   sub-seek -1
Ctrl+RIGHT  sub-seek 1
l           ab-loop

# Popular scripts:
# - autoload (auto-load playlist)
# - mpv-playlistmanager
# - mpv-webm (GIF/WebM creation)
# - quality-menu (YouTube quality)

YouTube and Streaming

# Play YouTube (requires yt-dlp)
mpv "https://www.youtube.com/watch?v=VIDEO_ID"

# Quality selection
mpv --ytdl-format="bestvideo[height<=1080]+bestaudio" URL

# Audio only
mpv --no-video URL

# List formats
mpv --ytdl-format=help URL

# Supports:
# YouTube, Twitch, Vimeo, and many more via yt-dlp

Conclusion

mpv delivers exceptional media playback in a lightweight, highly configurable package. Its focus on quality over bells and whistles, combined with extensive scripting capabilities, makes it the preferred choice for users who want precise control over their media playback experience. Whether watching local files or streaming content, mpv provides the performance and flexibility that power users demand.

Developer: mpv Team

Download Options

Download mpv – Free and Open Source Media Player

Version 0.37.x

File Size: 20-50 MB

Download Now
Safe & Secure

Verified and scanned for viruses

Regular Updates

Always get the latest version

24/7 Support

Help available when you need it