explaingit

mpv-player/mpv

📈 Trending35,275CAudience · developerComplexity · 3/5ActiveLicenseSetup · hard

TLDR

A fast, high-quality command-line media player that plays virtually any video or audio format with GPU-accelerated rendering and minimal overhead.

Mindmap

mindmap
  root((mpv))
    What it does
      Play video and audio
      Command-line interface
      GPU rendering
    Key features
      Wide format support
      Hardware acceleration
      Lua scripting
      Subtitle support
    Tech stack
      C language
      FFmpeg backend
      libplacebo shaders
      Meson build system
    Use cases
      High-quality playback
      Embedded in apps
      Automation scripts
      Power user control
    Audience
      Developers
      Power users
      Command-line users

Things people build with this

USE CASE 1

Play video files with superior quality upscaling and post-processing via GPU shaders.

USE CASE 2

Embed a lightweight media player into your own application using mpv's client API.

USE CASE 3

Automate playback behavior and create custom features using Lua scripts.

USE CASE 4

Decode high-resolution video efficiently with hardware acceleration on Nvidia, AMD, or Intel GPUs.

Tech stack

CFFmpeglibplaceboMesonLuaNVDECVAAPI

Getting it running

Difficulty · hard Time to first run · 1h+

Requires building from source with Meson, GPU drivers (NVIDIA/VAAPI), and multiple C library dependencies (FFmpeg, libplacebo).

Free and open-source; you can use, modify, and distribute it freely under the GPL license.

In plain English

mpv is a free, open-source command-line media player for playing video and audio files. It is the successor to the long-running MPlayer project and emphasizes correctness, quality output, and a minimalist design philosophy. Rather than providing a graphical media library browser like VLC or Windows Media Player, mpv is focused purely on playback, you tell it what file to play, and it plays it. The player supports an extremely wide range of file formats, codecs, and container types because it is built on top of FFmpeg, the industry-standard open-source multimedia decoding library. This means it can handle virtually any video or audio format you throw at it, including modern formats like AV1, HEVC, VP9, and Opus, as well as legacy formats. Subtitle support covers most formats including ASS/SSA styled subtitles, SRT, and PGS image-based subtitles. A key feature is mpv's video rendering pipeline: it uses GPU shaders (small programs that run on the graphics card) for upscaling and post-processing, which produces noticeably higher quality output than players that use fixed GPU hardware functions. Hardware-accelerated decoding via NVDEC (Nvidia), VAAPI (Linux), and other APIs is available for reducing CPU load on high-resolution video. A Lua scripting API lets advanced users write plugins and automate behavior. You would use mpv when you want a fast, high-quality media player that works well from the command line or can be embedded into other applications via its client API. It is particularly popular among developers, power users, and anyone who wants precise control over playback options and video quality. The tech stack is C, building with Meson and linking against FFmpeg and libplacebo. It runs on Linux, Windows 10+, and macOS 10.15+.

Copy-paste prompts

Prompt 1
How do I use mpv to play a video file from the command line with custom subtitle settings and GPU upscaling?
Prompt 2
Show me how to write a Lua script for mpv that automatically adjusts playback speed based on file type.
Prompt 3
How can I embed mpv as a media player in my C application using its client API?
Prompt 4
What are the best mpv settings for playing 4K video with hardware decoding on an Nvidia GPU?
Prompt 5
How do I configure mpv to use custom GPU shaders for video post-processing?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.