> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/mpv-player/mpv/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Play your first file and learn mpv's core controls in minutes

## Play your first file

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

<Steps>
  <Step title="Play a local file">
    ```bash theme={null}
    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.
  </Step>

  <Step title="Play a URL or stream">
    mpv accepts HTTP/HTTPS URLs, HLS streams, and other network sources directly:

    ```bash theme={null}
    mpv https://example.com/video.mp4
    ```

    <Tip>
      mpv reads from stdin too. Pipe media data with `mpv -` to play without a file on disk.
    </Tip>
  </Step>

  <Step title="Play audio only">
    Pass an audio file the same way — mpv opens in audio-only mode with no video window:

    ```bash theme={null}
    mpv music.flac
    ```
  </Step>
</Steps>

## Essential keyboard shortcuts

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

### Playback

| Key                          | Action                                      |
| ---------------------------- | ------------------------------------------- |
| `Space` or `p`               | Toggle pause                                |
| `q`                          | Stop and quit                               |
| `Q`                          | Quit and save position for later resumption |
| `Left` / `Right`             | Seek backward/forward 5 seconds             |
| `Up` / `Down`                | Seek forward/backward 1 minute              |
| `Shift+Left` / `Shift+Right` | Exact seek ±1 second                        |
| `<` / `>`                    | Go backward/forward in the playlist         |
| `[` / `]`                    | Decrease/increase playback speed by 10%     |
| `Backspace`                  | Reset playback speed to normal              |

### Volume and display

| Key       | Action                                |
| --------- | ------------------------------------- |
| `9` / `0` | Decrease/increase volume              |
| `m`       | Toggle mute                           |
| `f`       | Toggle fullscreen                     |
| `ESC`     | Exit fullscreen                       |
| `s`       | Take a screenshot (with subtitles)    |
| `S`       | Take a screenshot (without subtitles) |

### Subtitles and tracks

| Key       | Action                                  |
| --------- | --------------------------------------- |
| `v`       | Toggle subtitle visibility              |
| `j` / `J` | Cycle through available subtitle tracks |
| `#`       | Cycle through available audio tracks    |
| `_`       | Cycle through available video tracks    |

### Stats and debugging

| Key | Action                                                             |
| --- | ------------------------------------------------------------------ |
| `i` | Toggle statistics overlay (codec, framerate, dropped frames, etc.) |
| `?` | Toggle active key bindings overlay                                 |

<Note>
  Press `?` at any time while mpv is running to see all active key bindings in the video window.
</Note>

## Common command-line options

Pass options as `--option=value` after the filename or before it:

```bash theme={null}
# 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.

<Steps>
  <Step title="Create the config directory">
    ```bash theme={null}
    mkdir -p ~/.config/mpv
    ```
  </Step>

  <Step title="Create mpv.conf">
    ```bash theme={null}
    touch ~/.config/mpv/mpv.conf
    ```
  </Step>

  <Step title="Add your preferred settings">
    Open `~/.config/mpv/mpv.conf` in a text editor and add options — one per line, without the leading `--`:

    ```ini theme={null}
    # 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
    ```
  </Step>
</Steps>

<Note>
  On Windows, the config file is at `%APPDATA%\mpv\mpv.conf` (for example, `C:\Users\USERNAME\AppData\Roaming\mpv\mpv.conf`).
</Note>

### 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.

```ini theme={null}
# 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:

```bash theme={null}
mpv --profile=fast video.mkv
```

## Next steps

<CardGroup cols={2}>
  <Card title="Keyboard controls" icon="keyboard" href="/usage/keyboard-controls">
    Full default key binding reference and how to customize them.
  </Card>

  <Card title="Configuration" icon="sliders" href="/usage/configuration">
    All mpv.conf options and how to tune mpv for your setup.
  </Card>

  <Card title="Video output" icon="display" href="/av/video-output">
    Configure GPU-accelerated rendering, scaling, and HDR.
  </Card>

  <Card title="Scripting" icon="code" href="/scripting/lua-scripting">
    Extend mpv with Lua or JavaScript scripts.
  </Card>
</CardGroup>
