Skip to main content
mpv is a free and open-source media player built for the command line. Powered by FFmpeg and libplacebo, it plays virtually any video or audio format with high-quality GPU-accelerated rendering. Extend it with Lua or JavaScript scripts, control it remotely via JSON IPC, or embed it in your own application using the libmpv C API.

Installation

Install mpv on Linux, macOS, or Windows

Quickstart

Play your first file and learn the essentials in minutes

Configuration

Set up your config file and customize mpv to your workflow

Scripting

Automate and extend mpv with Lua or JavaScript scripts

What you can do with mpv

Basic Playback

Play local files, URLs, streams, and playlists from the terminal

Keyboard Controls

Master the default key bindings and create your own

Video Output

Configure GPU-accelerated video drivers and rendering options

Audio Output

Select and tune audio drivers for your platform

Hardware Decoding

Enable VDPAU, VAAPI, NVDEC, and other hardware decode paths

IPC Protocol

Control mpv externally via the JSON IPC socket interface

libmpv Embedding

Embed mpv as a playback backend in your own application

Options Reference

Browse the full command-line options reference

Get started quickly

1

Install mpv

Download mpv for your platform from the installation page. Packages are available for all major Linux distributions, macOS via Homebrew, and Windows.
2

Play a file

Open a terminal and run:
mpv video.mkv
mpv will auto-detect the best video and audio output for your system.
3

Configure your setup

Create ~/.config/mpv/mpv.conf to persist your preferred settings:
vo=gpu-next
hwdec=auto-safe
sub-auto=fuzzy
4

Explore scripting and automation

Drop a .lua or .js file into ~/.config/mpv/scripts/ to extend mpv with custom behavior, key bindings, and integrations.

Build docs developers (and LLMs) love