# mpv-player/mpv

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mpv-player-mpv).**

34,115 stars · 3,232 forks · C · other

## Links

- GitHub: https://github.com/mpv-player/mpv
- Homepage: https://mpv.io
- awesome-repositories: https://awesome-repositories.com/repository/mpv-player-mpv.md

## Topics

`audio` `c` `ffmpeg` `mplayer` `mpv` `multimedia` `video`

## Description

This project is a high-performance, terminal-based media player designed for efficient audio and video playback. It utilizes a modular decoding core to handle a wide range of multimedia formats while offloading frame processing to platform-specific hardware-accelerated rendering pipelines to minimize CPU overhead. Beyond its standalone utility, the software functions as an embeddable multimedia engine, providing a native library interface that allows external applications to integrate its advanced decoding and rendering capabilities directly into their own interfaces.

The player is distinguished by its extensive automation and control capabilities, which allow it to function as a programmable backend for complex media environments. Users can manage playback behavior through a declarative configuration system that supports conditional profiles and custom input mappings. Furthermore, the software provides a bidirectional inter-process communication interface using JSON-formatted commands, enabling external programs to monitor status and control playback in real time.

Extensibility is a core design principle, supported by a scripting automation engine and a native plugin architecture. These features allow developers to observe internal state, modify properties, and load compiled modules to extend functionality without disrupting the main playback loop. The system also includes comprehensive tools for managing audio output drivers, monitoring performance through real-time statistics overlays, and customizing user interactions via on-screen controllers and context menus.

## Tags

### Graphics & Multimedia

- [Media Players](https://awesome-repositories.com/f/graphics-multimedia/media-players.md) — A terminal-based application that handles high-performance audio and video playback through direct hardware-accelerated rendering.
- [Hardware-Accelerated Rendering Pipelines](https://awesome-repositories.com/f/graphics-multimedia/hardware-accelerated-rendering-pipelines.md) — Offloads video frame processing to platform-specific graphics APIs to minimize CPU usage and maximize playback performance.
- [Multimedia Playback Engines](https://awesome-repositories.com/f/graphics-multimedia/multimedia-playback-engines.md) — The media player offers a client library interface for embedding the playback engine into external applications, providing full control over video rendering and audio output. ([source](https://mpv.io/manual/master))
- [Playback Engines](https://awesome-repositories.com/f/graphics-multimedia/playback-engines.md) — Integrating a robust, feature-rich media playback backend into custom software projects through a native library interface.
- [Embeddable Media Engines](https://awesome-repositories.com/f/graphics-multimedia/embeddable-media-engines.md) — Exposes the playback engine as a native library allowing external software to embed rendering and audio output capabilities.
- [Hardware-Accelerated Rendering](https://awesome-repositories.com/f/graphics-multimedia/hardware-accelerated-rendering.md) — Building applications that require efficient, hardware-accelerated video and audio rendering with minimal CPU overhead for smooth playback.
- [Multimedia Decoding Frameworks](https://awesome-repositories.com/f/graphics-multimedia/multimedia-decoding-frameworks.md) — Utilizes a modular multimedia framework to handle diverse audio and video codec decoding and stream demuxing tasks.
- [Remote Control Interfaces](https://awesome-repositories.com/f/graphics-multimedia/remote-control-interfaces.md) — Enables external programs to monitor status and issue commands via sockets or pipes. ([source](https://mpv.io/manual/master))
- [Scripting Engines](https://awesome-repositories.com/f/graphics-multimedia/scripting-engines.md) — Provides a built-in scripting engine for automating playback tasks and extending player functionality. ([source](https://mpv.io/manual/master))
- [Inter-Process Communication Interfaces](https://awesome-repositories.com/f/graphics-multimedia/inter-process-communication-interfaces.md) — Exchanges JSON-formatted commands and status events between the player and external applications via Unix sockets or pipes.
- [Audio Output Drivers](https://awesome-repositories.com/f/graphics-multimedia/audio-output-drivers.md) — Supports selection and customization of audio output drivers for hardware-integrated playback. ([source](https://mpv.io/manual/master))
- [Configuration Systems](https://awesome-repositories.com/f/graphics-multimedia/configuration-systems.md) — Managing complex playback settings, input mappings, and conditional profiles through structured configuration files for consistent application behavior.
- [Plugin Architectures](https://awesome-repositories.com/f/graphics-multimedia/plugin-architectures.md) — Loads compiled binary modules into separate execution threads to extend core functionality without compromising the main playback loop.

### Development Tools & Productivity

- [Command Line Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces.md) — Enables comprehensive control over playback behavior and settings via command line arguments. ([source](https://mpv.io/manual/master))
- [Configuration Management](https://awesome-repositories.com/f/development-tools-productivity/configuration-management.md) — Supports persistent configuration files with profile-based settings and conditional logic. ([source](https://mpv.io/manual/master))

### User Interface & Experience

- [Input Mapping Systems](https://awesome-repositories.com/f/user-interface-experience/input-mapping-systems.md) — Allows flexible assignment of keyboard and mouse interactions to player commands. ([source](https://mpv.io/manual/master))

### Networking & Communication

- [Inter-Process Communication Interfaces](https://awesome-repositories.com/f/networking-communication/inter-process-communication-interfaces.md) — A communication layer that enables external programs to monitor playback status and issue commands through sockets or pipes.
