Modern media player forked from mplayer2 (itself a fork of MPlayer) after frustration with unmaintainable legacy code and resistance to modernization.
mpv is a free, open-source, cross-platform media player written in C. It supports a wide range of media file formats, audio and video codecs, and subtitle types. Unlike MPlayer, mpv uses a modern OpenGL/Vulkan video output pipeline, supports Lua and JavaScript scripting, and has a clean JSON IPC protocol for external control.
MPlayer was born in 2000 when Hungarian developer Árpád Gereöffy couldn't find a satisfactory Linux video player after XAnim stopped development. It became the go-to open-source media player but accumulated enormous technical debt over the years, with support for obscure platforms and codecs nobody used anymore. The MPlayer development culture was deeply conservative — don't break anything, don't remove anything, ever.
In 2010, Uoti Urpala forked MPlayer into mplayer2, stripping out MEncoder, the GUI, and various legacy video drivers. The fork improved pause handling, Matroska support, and enabled multithreading by default. But mplayer2 itself suffered from slow development and difficulty getting changes merged — the same disease it had tried to cure.
Vincent Lang (wm4) forked mplayer2 in 2012 to create mpv, taking a radically different approach: merciless removal of unmaintainable code, dropping support for ancient systems, and welcoming contributions. The result was electric — mpv quickly attracted a large influx of new contributors energized by the project's willingness to modernize. The codebase shrank dramatically while capabilities grew.
Mplayer2 went inactive almost immediately after the mpv fork and is completely gone today. MPlayer itself continues in a maintenance-only state but is no longer recommended for general use. mpv became the de facto standard command-line media player, used as the backend for numerous GUI players and embedded in applications like Celluloid, IINA, and SMPlayer.
The MPlayer → mplayer2 → mpv lineage is a textbook example of how code quality concerns can cascade through multiple fork generations, with each fork learning from the previous one's mistakes.
MPlayer development begins in Hungary
Uoti Urpala forks MPlayer into mplayer2, removing legacy bloat
Vincent Lang forks mplayer2 into mpv, taking a more aggressive modernization approach
mpv gains rapid contributor growth; mplayer2 goes inactive
mpv becomes the recommended backend for multiple GUI media players
mpv is now the dominant open-source command-line media player and serves as the playback engine for dozens of GUI applications across every major platform. It proved that sometimes the best way to save a project is to ruthlessly cut away its past. The three-generation fork chain (MPlayer → mplayer2 → mpv) is frequently cited as an example of how open-source evolution works in practice.