A free, open-source command-line media player supporting a wide variety of formats and codecs.
mpv is a free, open-source command-line media player that supports a vast array of media formats, audio/video codecs, and subtitle types. It solves the need for a highly customizable, keyboard-driven playback tool that works across Linux, Windows, and macOS while maintaining performance and extensibility through scripting.
Power users, developers, and command-line enthusiasts who want precise control over media playback, prefer keyboard navigation, and value customization through scripting and configuration.
Developers choose mpv for its technical correctness, extensive format support, and scriptability via Lua—offering a lightweight, highly configurable alternative to GUI-based media players without sacrificing playback quality or control.
🎥 Command line media player
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Plays nearly any media format, audio/video codec, and subtitle type through FFmpeg integration, ensuring broad compatibility without additional plugins or codecs.
Lua scripting enables custom behaviors, on-screen controls (OSC), and integration with tools like YouTube-DL, allowing for automation and advanced feature extensions.
Optional GPU decoding via `--hwdec` can significantly boost performance on capable systems, though it requires manual configuration and is not enabled by default.
Shader-based rendering and multiple video output backends provide precise control over video scaling and quality, ideal for high-end setups and technical tweaking.
Extensive key bindings and the on-screen controller (OSC) optimize navigation for fast, mouse-free operation, appealing to power users who prefer keyboard shortcuts.
Compilation requires numerous dependencies like FFmpeg and libass, and features like hardware decoding must be explicitly enabled, making initial setup daunting for non-developers.
The command-line focus and minimal OSC mean users must rely on configuration files or scripting for a GUI-like experience, which is insufficient for those expecting a full graphical interface.
Releases are cut only once or twice a year, and only the latest version is maintained, leaving users on older versions without updates or bug fixes.
Not optimized for embedded or integrated GPUs; issues like tearing and stutter are common, requiring manual tweaks such as `--profile=fast` or fallback outputs, which are not officially recommended.