Skip to main content
mpv has a fully configurable, command-driven control layer. The default bindings listed here are hardcoded into the mpv binary. You can add or override them in ~/.config/mpv/input.conf.
The listings below are not exhaustive. The authoritative source is etc/input.conf in the mpv source tree. You can also view active bindings interactively with the ? key (see Viewing bindings).

Seeking

KeyAction
RightSeek forward 5 seconds (keyframe-limited)
LeftSeek backward 5 seconds (keyframe-limited)
UpSeek forward 1 minute (keyframe-limited)
DownSeek backward 1 minute (keyframe-limited)
Shift+RightSeek forward exactly 1 second
Shift+LeftSeek backward exactly 1 second
Shift+UpSeek forward exactly 5 seconds
Shift+DownSeek backward exactly 5 seconds
Ctrl+RightSeek to the next subtitle
Ctrl+LeftSeek to the previous subtitle
Ctrl+Shift+RightAdjust subtitle delay so the next subtitle shows now
Ctrl+Shift+LeftAdjust subtitle delay so the previous subtitle shows now
HomeSeek to the beginning of the file
Page UpSeek to the beginning of the next chapter
Page DownSeek to the beginning of the previous chapter
Shift+Page UpSeek forward 10 minutes
Shift+Page DownSeek backward 10 minutes
Shift+BackspaceUndo the last seek (only within the same playlist entry)
Shift+Ctrl+BackspaceMark current position for Shift+Backspace to return to

Playback control

KeyAction
p / SpaceToggle pause / unpause
.Step forward one frame, then pause
,Step backward one frame, then pause
q / Ctrl+wStop playback and quit
QQuit and save current position for later resumption
Ctrl+cQuit with exit code 4
ESCExit fullscreen; no other effect in windowed mode

Playback speed

KeyAction
[Decrease playback speed by 10%
]Increase playback speed by 10%
{Halve playback speed
}Double playback speed
BackspaceReset playback speed to 1×

Volume and audio

KeyAction
9 / /Decrease volume
0 / *Increase volume
mToggle mute
#Cycle through available audio tracks
Ctrl++Increase audio delay (A/V sync) by 0.1 s
Ctrl+-Decrease audio delay (A/V sync) by 0.1 s

Video

KeyAction
fToggle fullscreen
ESCLeave fullscreen
TToggle always-on-top
_Cycle through available video tracks
ACycle aspect ratio override
w / WDecrease/increase pan-and-scan range
bToggle debanding filter
dCycle deinterlacing filter
ECycle through available editions
Ctrl+hToggle hardware video decoding
Alt+Left/Right/Up/DownPan the video
Alt++ / Alt+-Zoom in/out
Alt+BackspaceReset pan and zoom
Alt+0Resize window to half its original size
Alt+1Resize window to its original size
Alt+2Resize window to double its original size

Color adjustments

These keys are only effective when the video output supports the corresponding adjustment:
KeyAction
1 / 2Adjust contrast
3 / 4Adjust brightness
5 / 6Adjust gamma
7 / 8Adjust saturation

Subtitles

KeyAction
jCycle forward through subtitle tracks
JCycle backward through subtitle tracks
vToggle subtitle visibility
Alt+vToggle secondary subtitle visibility
z / ZShift subtitle timing −/+ 0.1 seconds
r / RMove subtitles up/down
G / FIncrease/decrease subtitle font size by 10%
uToggle subtitle style override (apply --sub-ass-* overrides vs. override fully)
VCycle which video data is used for ASS rendering

Screenshots

KeyAction
sScreenshot at original resolution, with subtitles
SScreenshot at original resolution, without subtitles
Ctrl+sScreenshot of the window as displayed (with OSD and scaling)
Alt+sScreenshot every frame (press again to stop)

Playlist navigation

KeyAction
>Go to the next playlist entry
<Go to the previous playlist entry
EnterGo to the next playlist entry
Shift+HomeJump to the first playlist entry
Shift+EndJump to the last playlist entry
lSet or clear A-B loop points
LToggle infinite looping of the current file
F8Show the playlist and current position

OSD and info

KeyAction
o / PShow progress bar, elapsed time, and total duration
OToggle OSD between normal and always-on playback time
iShow playback statistics overlay
IToggle statistics overlay
?Toggle key bindings overlay
`Open the console
F9Show the list of audio, video, and subtitle tracks
DELCycle OSC visibility: never / auto / always

Interactive track and playlist selection (g- prefix)

These bindings open an interactive menu in the console for selecting from a list:
KeyAction
g-pSelect a playlist entry
g-sSelect a subtitle track
g-SSelect a secondary subtitle track
g-aSelect an audio track
g-vSelect a video track
g-tSelect a track of any type
g-cSelect a chapter
g-eSelect an MKV edition or DVD/Blu-ray title
g-lSelect a subtitle line to seek to (requires ffmpeg in PATH)
g-dSelect an audio device
g-hSelect a file from the watch history (requires --save-watch-history)
g-wSelect a file from watch-later config files to resume
g-bSelect a defined input binding
g-rShow all property values
g-m / Ctrl+pOpen the miscellaneous menu
Navigate the menu with Down/Ctrl+n (down), Up/Ctrl+p (up), Page Down/Ctrl+f (page down), Page Up/Ctrl+b (page up). Selecting the active track in a track menu disables it.

Multimedia keys

KeyAction
PausePause
StopStop and quit
Previous / NextSeek backward/forward 1 minute
Volume Up / Volume DownAdjust volume
MuteToggle mute

Context menu

KeyAction
MENU / Shift+F10Open the context menu

Mouse controls

ActionEffect
Left double-clickToggle fullscreen
Right clickToggle pause
Scroll wheel up/downAdjust volume
Scroll wheel left/rightSeek backward/forward 10 seconds
Ctrl+scroll wheel up/downZoom in/out, keeping the hovered position fixed
Forward/Back buttonsNext/previous playlist entry
Ctrl+left click and dragPan the video, keeping the clicked point under the cursor

Viewing bindings

Press ? during playback to toggle an overlay showing all currently active key bindings. This is provided by the built-in stats script. You can also run mpv in binding test mode to inspect what any key does:
mpv --input-test --force-window --idle
Press any key in the window and mpv prints the binding details to the terminal.

Custom bindings in input.conf

Create or edit ~/.config/mpv/input.conf to add or override bindings. Each line has the form:
KEY COMMAND [# comment]
# Increase/decrease volume with +/-
+  add volume  5
-  add volume -5

# Jump forward/backward 90 seconds with Ctrl+arrow
Ctrl+RIGHT seek  90
Ctrl+LEFT  seek -90

# Toggle hardware decoding
h cycle-values hwdec no auto

# Bind SHARP (#) to toggle mute (SHARP is the literal key name for #)
SHARP cycle mute

# Ignore the g key so the g-* bindings still work without triggering anything
g ignore
Use ignore to fully unbind a key: ctrl+a ignore. Disable all default bindings with --no-input-default-bindings and define everything yourself.
Key modifier names are Shift, Ctrl, Alt, and Meta. Combine them with +, for example Ctrl+Alt+x.

Build docs developers (and LLMs) love