MPV player cheatsheet

By xngo on February 21, 2019

# Key commands:
    f       : Fullscreen.
    Shift+# : Switch audio channel.
    ( )     : Left, right audio channel.
    s       : Take screenshot.
    Ctrl+t  : Toggle stay-on-top. Play video on top of other windows.
    j       : Cycle through the available subtitles.
    RIGHT   : Next 10 seconds.
    LEFT    : Previous 10 seconds.
    UP      : Next minute.
    DOWN    : Previous minute.
    PGUP    : Next chapter.
    PGDWN   : Previous chapter.
    Shift+i : Show full spec of video. e.g. A/V framerate, filesize, resolution, etc
# Play video fullscreen.
    mpv --fs videofile.avi
# Play video at 70% of the volume.
    mpv --volume=70 videofile.avi
# Play video at specific time.
    mpv --start=00:01:03 --end=00:02:01 videofile.avi
#  Play video at 50% of your screen size.
    mpv --autofit=50% videofile.avi
# Repeat / Loop video
    mpv --loop=4 videofile.avi
    mpv --loop=inf videofile.avi
# Show runtime by default.
    mpv --osd-level=2 videofile.avi
    # Or, put osd-level=2 in ~/.config/mpv/mpv.conf.
    # Level 3 will show total video length.
# Find and play videos:
    mpv -playlist <(find "$PWD" -type f)
    # $PWD is required. Otherwise, it'll append relative path to the file descriptor's location.
    #   e.g: "/dev/fd/./path/to/video-file.avi", which would fail to open.  
# Play devices.
    mpv dvd://1     --dvd-device=/dev/sr0/or/iso/
    mpv dvdnav://2  --dvd-device=/dev/sr0/or/iso/
    mpv bd://       --bluray-device=/path/to/bd/
    mpv cdda://     --cdrom-device=/path/to/bd/
    # Webcam.
    mpv av://v4l2:/dev/video0
# Extract video file at a specific time.
    mpv videofile.avi -o excerptvideo.avi --start=00:01:00 --end=00:03:35
# Extract audio from video file.
    mpv videofile.avi -o audiofile.mp3 --no-video
# Extract audio from video file at a specific time.
    mpv videofile.avi -o audiofile.mp3 --no-video --start=00:01:00 --end=00:03:35
# Extract audio from video file at a specific time for a relative length.
    mpv videofile.avi -o audiofile.mp3 --no-video --start=0 --length=10
# Take screenshot a specific time.(--no-terminal: turn off output)
    mpv videofile.avi --no-audio --vo=image --start=2% --frames=1 -o output.jpg
# Encoding:
    cat /etc/mpv/encoding-profiles.conf  # All preset profiles.
    mpv infile -o outfile.avi --vf=fps=25 -ovc mpeg4   -ovcopts qscale=4                              -oac libmp3lame -oacopts ab=128k
    mpv infile -o outfile.mkv             -ovc libx264 -ovcopts preset=medium,crf=23,profile=baseline -oac libvorbis  -oacopts qscale=3
    mpv infile -o outfile.mp4             -ovc libx264 -ovcopts preset=medium,crf=23,profile=baseline -oac aac        -oacopts ab=128k
    mpv infile -o outfile.mkv -of webm    -ovc libvpx  -ovcopts qmin=6,b=1000000k                     -oac libvorbis  -oacopts qscale=3
# Get duration.
    mpv video.avi --no-audio --vo=null --frames=1 2>&1 >/dev/null | grep '^V: ' | head -n1 | sed 's|.*/||' | sed 's/(.*//' | xargs
# Print video info.
    find . -type f -print0 | xargs -0 mpv --no-audio --vo=null --frames=1
# Subtitle.
    mpv --sub-visibility=no video.avi
    mpv --sid=no            video.avi
# In config file, Linux: ~/.config/mpv/mpv.conf or Win32: ./portable_config/mpv.conf, where ./mpv.exe
    # Redefine screenshot filename: filename (00:00:01.084) 0001.jpg
    screenshot-template='%x\%F (%P) %04n'
        # %x = same folder as the original video
    # Always show total duration


About the author

Xuan Ngo is the founder of He currently lives in Montreal, Canada. He loves to write about programming and open source subjects.