Skip to main content

Play your first file

Open a terminal and pass a file path or URL to mpv:
1

Play a local file

mpv video.mkv
mpv auto-detects the best video and audio output for your system. The video opens in a window; the terminal shows playback status.
2

Play a URL or stream

mpv accepts HTTP/HTTPS URLs, HLS streams, and other network sources directly:
mpv https://example.com/video.mp4
mpv reads from stdin too. Pipe media data with mpv - to play without a file on disk.
3

Play audio only

Pass an audio file the same way — mpv opens in audio-only mode with no video window:
mpv music.flac

Essential keyboard shortcuts

Once mpv is playing, use the keyboard to control it. The control layer is fully configurable; these are the defaults.

Playback

KeyAction
Space or pToggle pause
qStop and quit
QQuit and save position for later resumption
Left / RightSeek backward/forward 5 seconds
Up / DownSeek forward/backward 1 minute
Shift+Left / Shift+RightExact seek ±1 second
< / >Go backward/forward in the playlist
[ / ]Decrease/increase playback speed by 10%
BackspaceReset playback speed to normal

Volume and display

KeyAction
9 / 0Decrease/increase volume
mToggle mute
fToggle fullscreen
ESCExit fullscreen
sTake a screenshot (with subtitles)
STake a screenshot (without subtitles)

Subtitles and tracks

KeyAction
vToggle subtitle visibility
j / JCycle through available subtitle tracks
#Cycle through available audio tracks
_Cycle through available video tracks

Stats and debugging

KeyAction
iToggle statistics overlay (codec, framerate, dropped frames, etc.)
?Toggle active key bindings overlay
Press ? at any time while mpv is running to see all active key bindings in the video window.

Common command-line options

Pass options as --option=value after the filename or before it:
# Open in fullscreen
mpv --fs video.mkv

# Start at a specific time (2 minutes 30 seconds in)
mpv --start=2:30 video.mkv

# Force a specific audio track
mpv --aid=2 video.mkv

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

# Loop the file indefinitely
mpv --loop video.mkv

# Set volume (0–100, default is 100)
mpv --volume=80 video.mkv

Set up a config file

Rather than typing options on every invocation, write them to ~/.config/mpv/mpv.conf. Options in this file are applied on every run.
1

Create the config directory

mkdir -p ~/.config/mpv
2

Create mpv.conf

touch ~/.config/mpv/mpv.conf
3

Add your preferred settings

Open ~/.config/mpv/mpv.conf in a text editor and add options — one per line, without the leading --:
# Use the modern GPU video output driver
vo=gpu-next

# Enable safe hardware decoding when available
hwdec=auto-safe

# Load external subtitle files automatically (fuzzy filename match)
sub-auto=fuzzy

# Start at 80% volume
volume=80
On Windows, the config file is at %APPDATA%\mpv\mpv.conf (for example, C:\Users\USERNAME\AppData\Roaming\mpv\mpv.conf).

Video output

The default high-quality video output driver is gpu-next, built on libplacebo. It uses shaders for scaling and rendering rather than fixed GPU hardware functions.
# Recommended: modern GPU output via libplacebo
vo=gpu-next
On low-power or integrated GPUs where you experience stuttering or tearing, use the fast profile:
mpv --profile=fast video.mkv

Next steps

Keyboard controls

Full default key binding reference and how to customize them.

Configuration

All mpv.conf options and how to tune mpv for your setup.

Video output

Configure GPU-accelerated rendering, scaling, and HDR.

Scripting

Extend mpv with Lua or JavaScript scripts.

Build docs developers (and LLMs) love