HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mpv-player
mpv
C2013–2026
mpv-player / mpv

mpv

🎥 Command line media player

130Distinct people
156Mentions
3Explicit recommenders
38.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🎥 Command line media player

GitHub

Where it is used

  • Celluloid — Celluloid uses mpv via libmpv’s client API to power its media playback. It serves as a GTK frontend that relies on mpv for playback capabilities. Source
  • IINA — IINA uses mpv as the underlying media engine it is built on. This powers its media playback capabilities. Source

What people are saying

My favorite infamous example being the MPV C locale commit: https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02... You can really feel the author's rage at the state…

0cf8612b2e1e used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:00:58 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year156 dated mentions

Observed mentions: 2013-08-11 10:08:17 UTC to 2026-07-14 21:01:20 UTC.

05101520252013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 6 mentions; 2 submissions, 4 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 10 mentions; 3 submissions, 7 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 8 mentions; 2 submissions, 6 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 21 mentions; 4 submissions, 17 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 16 mentions; 4 submissions, 12 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 22 mentions; 2 submissions, 20 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 19 mentions; 6 submissions, 13 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 23 mentions; 6 submissions, 17 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC624
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC606
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC422
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC606
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC1037
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC716
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC826
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC21417
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC16412
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC22220
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC19613
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC23617
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC514
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC312

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
mpv External links Overview System requirements Downloads Changelog Compilation Release cycle Bug reports Contributing License Contact External links Wiki User Scripts FAQ Manual Overview mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types. There is a FAQ. Releases can be found on the release list. System requirements A not too ancient Linux (usually, only the latest releases of distributions are actively supported), Windows 10 1607 or later, or macOS 10.15 or later. A somewhat capable CPU. Hardware decoding might help if the CPU is too slow to decode video in realtime, but must be explicitly enabled with the --hwdec option. A not too crappy GPU. mpv's focus is not on power-efficient playback on embedded or integrated GPUs (for example, hardware decoding is not even enabled by default). Low power GPUs may cause issues like tearing, stutter, etc. On such GPUs, it's recommended to use --profile=fast for smooth playback. The main video output uses shaders for video rendering and scaling, rather than GPU fixed function hardware. On Windows, you might want to make sure the graphics drivers are current. In some cases, ancient fallback video output methods can help (such as --vo=xv on Linux), but this use is not recommended or supported. mpv does not go out of its way to break on older hardware or old, unsupported operating systems, but development is not done with them in mind. Keeping compatibility with such setups is not guaranteed. If things work, consider it a happy accident. Downloads For semi-official builds and third-party packages please see mpv.io/installation. Changelog There is no complete changelog; however, changes to the player core interface are listed in the interface changelog. Changes to the C API are documented in the client API changelog. The release list has a summary of most of the important changes on every release. Changes to the default key bindings are indicated in restore-old-bindings.conf. Changes to the default OSC bindings are indicated in restore-osc-bindings.conf. Compilation Compiling with full features requires development files for several external libraries. Mpv requires meson to build. Meson can be obtained from your distro or PyPI. After creating your build directory (e.g. meson setup build), you can view a list of all the build options via meson configure build. You could also just simply look at the meson_options.txt file. Logs are stored in meson-logs within your build directory. Example: meson setup build meson compile -C build meson install -C build For libplacebo, meson can use a git check out as a subproject for a convenient way to compile mpv if a sufficient libplacebo version is not easily available in the build environment. It will be statically linked with mpv. Example: mkdir -p subprojects git clone https://code.videolan.org/videolan/libplacebo.git --depth=1 --recursive subprojects/libplacebo Essential dependencies (incomplete list): gcc or clang X development headers (xlib, xrandr, xext, xscrnsaver, xpresent, libvdpau, libGL, GLX, EGL, xv, ...) Audio output development headers (libasound/ALSA, pulseaudio) FFmpeg libraries (libavutil libavcodec libavformat libswscale libavfilter and either libswresample or libavresample) libplacebo zlib iconv (normally provided by the system libc) libass (OSD, OSC, text subtitles) Lua (optional, required for the OSC pseudo-GUI and youtube-dl integration) libjpeg (optional, used for screenshots only) uchardet (optional, for subtitle charset detection) nvdec and vaapi libraries for hardware decoding on Linux (optional) Libass dependencies (when building libass): gcc or clang, nasm on x86 and x86_64 fribidi, freetype, fontconfig development headers (for libass) harfbuzz (required for correct rendering of combining characters, particularly for correct rendering of non-English text on macOS, and Arabic/Indic scripts on any platform) FFmpeg dependencies (when building FFmpeg): gcc or clang, nasm on x86 and x86_64 OpenSSL or GnuTLS (have to be explicitly enabled when compiling FFmpeg) libx264/libmp3lame/libfdk-aac if you want to use encoding (have to be explicitly enabled when compiling FFmpeg) For native DASH playback, FFmpeg needs to be built with --enable-libxml2 (although there are security implications, and DASH support has lots of bugs). AV1 decoding support requires dav1d. For good nvidia support on Linux, make sure nv-codec-headers is installed and can be found by configure. Most of the above libraries are available in suitable versions on normal Linux distributions. For ease of compiling the latest git master of everything, you may wish to use the separately available build wrapper (mpv-build) which first compiles FFmpeg libraries and libass, and then compiles the player statically linked against those. If you want to build a Windows binary, see Windows compilation. Release cycle Once or twice a year, a release is cut off from the current development state and is assigned a 0.X.0 version number. No further maintenance is done, except in the event of security issues. The goal of releases is to make Linux distributions happy. Linux distributions are also expected to apply their own patches in case of bugs. Releases other than the latest release are unsupported and unmaintained. See the release policy document for more information. Bug reports Please use the issue tracker provided by GitHub to send us bug reports or feature requests. Follow the template's instructions or the issue will likely be ignored or closed as invalid. Questions can be asked in the discussions or on IRC (see Contact below). Contributing Please read contribute.md. For small changes you can just send us pull requests through GitHub. For bigger changes come and talk to us on IRC before you start working on them. It will make code review easier for both parties later on. You can check the wiki or the issue tracker for ideas o
Read the full README on GitHub

What Hacker News says

6 sources
I think the FFmpeg vs libav debate is succinctly described by this quote from https://github.com/mpv-player/mpv/wiki/FFmpeg-versus-Libav > Although we don't agree with everything FFmpeg does, and we like some of Libav's general goals and development directions, FFmpeg is just better from a practical point of view. > It shouldn't be forgotten that Libav is doing significant and important development, but since everything they do ends up in FFmpeg anyway, there is barely any reason to prefer Libav over FFmpeg from the user point of view. > It's also possible that FFmpeg agrees faster to gross hacks to paint over bugs and issues than Libav, however, in the user's perception FFmpeg will perform better because of that. Basically libav is doing things in the proper way but slowly, so they will die because FFmpeg ships more features although les
Read the rest
s polished. "The ones that win are the ones that ship", isn't it?
In Reintroducing FFmpeg to Debian
About time. I'm usually all for forking and variety, but libav truly was an example of those gratuitous and destructive forks that offered no real benefit. Though, ultimately, it was the Debian package maintainers' decision to spread propaganda about ffmpeg being deprecated that was the worst. As a practical example, I was gridlocked when I tried to compile LightSpark from Git, due to libswresample not being present, nor practically obtainable. Editing it out from cmake, predictably, lead to breakage. Here's a classic article detailing the situation: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html And from the mpv developers: https://github.com/mpv-player/mpv/wiki/FFmpeg-versus-Libav
In Reintroducing FFmpeg to Debian

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.