{
  "schemaVersion": 1,
  "contentVersion": "ca42e61ede0a24f789d7287a0001244ad22f4abf",
  "id": "docs/tools/video-players",
  "collection": "docs",
  "title": "Video Players",
  "description": "Which video players to use for watching and checking encodes, with mpv's controls for frame-by-frame comparison.",
  "canonicalUrl": "https://encode.wiki/tools/video-players/",
  "apiUrl": "https://encode.wiki/api/v1/documents/docs/tools/video-players.json",
  "markdownUrl": "https://encode.wiki/api/v1/markdown/docs/tools/video-players.md",
  "status": "current",
  "tags": [
    "migrated"
  ],
  "license": "CC BY-SA 4.0",
  "dates": {
    "lastVerified": "2026-10-08T00:00:00.000Z"
  },
  "authors": [],
  "sources": [
    {
      "title": "mpv manual (v0.41.0 options)",
      "url": "https://github.com/mpv-player/mpv/blob/v0.41.0/DOCS/man/options.rst",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "mpv default key bindings (v0.41.0 input.conf)",
      "url": "https://github.com/mpv-player/mpv/blob/v0.41.0/etc/input.conf",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "mpv releases",
      "url": "https://github.com/mpv-player/mpv/releases",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "VLC media player",
      "url": "https://www.videolan.org/vlc/",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "MPC-HC (clsid2) repository",
      "url": "https://github.com/clsid2/mpc-hc",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "MPC-BE repository",
      "url": "https://github.com/Aleksoid1978/MPC-BE",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "IINA repository",
      "url": "https://github.com/iina/iina",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    }
  ],
  "provenance": {
    "originUrl": "https://github.com/av1-community-contributors/codec-wiki/blob/37c3317fd058b23c71a87679bed5619a98f77752/docs/video-players.mdx",
    "originCommit": "37c3317fd058b23c71a87679bed5619a98f77752",
    "migratedAt": "2026-08-21T00:00:00.000Z",
    "modified": true,
    "originPath": "docs/video-players.mdx"
  },
  "headings": [
    {
      "depth": 2,
      "text": "Check an encode in mpv",
      "anchor": "check-an-encode-in-mpv"
    },
    {
      "depth": 2,
      "text": "HDR",
      "anchor": "hdr"
    }
  ],
  "sections": [
    {
      "id": "_preamble",
      "title": "Page introduction",
      "depth": 0,
      "canonicalUrl": "https://encode.wiki/tools/video-players/",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/video-players/_preamble.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/video-players/_preamble.md",
      "checksum": "5eb171c7166bd782aeb7610352068e72572ae8886dd2d6cbfbcd3296d5efe06a",
      "bytes": 1883
    },
    {
      "id": "check-an-encode-in-mpv",
      "title": "Check an encode in mpv",
      "depth": 2,
      "anchor": "check-an-encode-in-mpv",
      "canonicalUrl": "https://encode.wiki/tools/video-players/#check-an-encode-in-mpv",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/video-players/check-an-encode-in-mpv.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/video-players/check-an-encode-in-mpv.md",
      "checksum": "98419849a99b1deb110b98e5c726b2faa3c3c70bbd9d78864e6321c899dc22c0",
      "bytes": 1785
    },
    {
      "id": "hdr",
      "title": "HDR",
      "depth": 2,
      "anchor": "hdr",
      "canonicalUrl": "https://encode.wiki/tools/video-players/#hdr",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/video-players/hdr.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/video-players/hdr.md",
      "checksum": "2f7324d68770305d19bf9d30dea631e6d27557d6230d8569d9795af60ce3fd13",
      "bytes": 530
    }
  ],
  "outboundReferences": [
    "/guides/compare-encoding-quality/",
    "/guides/preserve-color-and-hdr/",
    "https://github.com/Aleksoid1978/MPC-BE",
    "https://github.com/clsid2/mpc-hc",
    "https://iina.io/",
    "https://mpv.io/",
    "https://www.videolan.org/vlc/"
  ],
  "checksum": "0d226edcfd07b9a04257ece5d34efe34c97225df1d40d869e6e0cfbc4c3780d6",
  "contentFormat": "markdown",
  "markdown": "Any modern player will play your encodes. For checking them, you want one that decodes accurately, shows what it is doing, and steps through frames. That is usually mpv.\n\n| Player                                                     | Platforms             | Notes                                                                                                                         |\n| ---------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| [mpv](https://mpv.io/)                                     | Windows, macOS, Linux | Minimal interface, scriptable, high-quality libplacebo rendering. The usual choice for inspecting encodes.                    |\n| [VLC](https://www.videolan.org/vlc/)                       | All, including mobile | Plays almost anything out of the box. Current release is 3.0.24; VLC 4.0 is still in development.                             |\n| [MPC-HC](https://github.com/clsid2/mpc-hc) (clsid2)        | Windows               | Classic Windows player with LAV Filters built in and MPC Video Renderer included. The original project ended in 2017; clsid2's fork is the maintained one. |\n| [MPC-BE](https://github.com/Aleksoid1978/MPC-BE)           | Windows               | A separate, also maintained MPC fork with its own interface and filters.                                                      |\n| [IINA](https://iina.io/)                                   | macOS                 | Native macOS interface built on mpv.                                                                                          |\n\nmpv also has graphical front ends for each desktop: IINA on macOS, Celluloid (GNOME) and Haruna (KDE) on Linux, and mpv.net on Windows. They share mpv's decoding and rendering.\n\n## Check an encode in mpv\n\nHardware decoding is off by default in mpv, so it uses FFmpeg's software decoders (dav1d for AV1). That is what you want for judging an encode: the picture is decoded exactly, and you see how heavy the file is for a CPU. Turn hardware decoding on with `Ctrl+h` or `--hwdec=auto` to test whether your GPU can play it.\n\nThe default keys most useful for inspection:\n\n| Key                   | Action                                                  |\n| --------------------- | ------------------------------------------------------- |\n| `Space`               | Pause / play                                            |\n| `.` / `,`             | Step one frame forward / back (and pause)               |\n| `Shift+→` / `Shift+←` | Seek exactly 1 second, not to the nearest keyframe     |\n| `i` / `I`             | Show statistics once / toggle them (decoder, format, dropped frames) |\n| `s` / `S`             | Screenshot with / without subtitles, at video resolution |\n| `#` / `j`             | Cycle audio / subtitle tracks                           |\n| `[` / `]`             | Slow down / speed up playback                           |\n\nScreenshots are JPEG by default. Use `--screenshot-format=png` when you want to compare stills without adding JPEG artifacts.\n\nTo watch the source and an encode side by side, synchronised:\n\n```sh\nmpv --external-file=encode.mkv --lavfi-complex=\"[vid1][vid2]hstack[vo]\" source.mkv\n```\n\n`hstack` needs both videos to have the same height; scale the encode in the filter graph if you changed the resolution. Watch at normal speed first, then step through the frames of any section that looks wrong. Metrics can tell you where to look, but your eyes decide; see [Compare encoding quality](/guides/compare-encoding-quality/).\n\n## HDR\n\nmpv's default renderer (`gpu-next`) tone-maps HDR to SDR on an SDR display. On Windows (D3D11) and Wayland it can also switch an HDR-capable display into HDR and pass the signal through, which it does automatically when the display's capabilities are known (`--target-colorspace-hint`). On Windows, MPC-HC plays HDR through MPC Video Renderer or madVR. Judge HDR encodes on an HDR display where you can; tone-mapped previews vary with the player's settings. See [Preserve colour and HDR](/guides/preserve-color-and-hdr/).\n"
}
