https://github.com/mpv-player/mpv Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} mpv-player / mpv Public * Notifications * Fork 2.1k * Star 17.3k * Command line video player mpv.io View license 17.3k stars 2.1k forks Star Notifications * Code * Issues 719 * Pull requests 79 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 74 branches 80 tags Code Latest commit @Dudemanguy Dudemanguy meson: remove iconv hacks and bump req. version ... d77b30a Jan 9, 2022 meson: remove iconv hacks and bump req. version There was some breakage with regards to the iconv detection in some older meson versions. This was all settled in 0.60.3 and now it simply just works. Remove the workarounds and bump the needed meson version to 0.60.3. d77b30a Git stats * 49,382 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github github/workflows: remove some pip3 usages Jan 9, 2022 DOCS vf_format: add dolbyvision sub-option Jan 9, 2022 TOOLS TOOLS/matroska.py: support outputting to file Nov 14, 2021 audio af_lavcac3enc: fix memory leak on no-op Dec 14, 2021 ci ci: add meson builds Nov 14, 2021 common build: add meson build support Nov 14, 2021 demux demux_lavf: properly forward dovi config record Jan 9, 2022 etc input.conf: remove redundant comments Sep 6, 2021 filters mp_image, f_decoder_wrapper: implement AV_FRAME_DATA_DISPLAYMATRIX Dec 15, 2021 generated meson: minor QOL and logic tweaks Nov 15, 2021 input input: new option: --no-input-builtin-bindings Oct 11, 2021 libmpv player: make deprecated track/chapter/metadata events internal Dec 15, 2021 misc osdep: rename MP_UNREACHABLE Nov 3, 2021 options options: const annotate all m_opt_choice_alternatives accessors Nov 15, 2021 osdep subprocess: unblock/reset signals before running child process Dec 19, 2021 player js: events registration: clarify breakage/fix Dec 26, 2021 stream stream_dvb: add missing mutex unlock Nov 16, 2021 sub sub/lavc_conv: only set subtitle text format when required Dec 5, 2021 ta ta: add ta_get_parent() Apr 26, 2020 test command: add secondary-sub-start and secondary-sub-end properties Jul 12, 2021 video vo_gpu_next: forward dovi metadata to libplacebo Jan 9, 2022 waftools build: add meson build support Nov 14, 2021 .editorconfig editorconfig: add initial file/config Oct 20, 2021 .gitignore build: add meson build support Nov 14, 2021 Copyright stream_smb: remove this Mar 5, 2020 LICENSE.GPL DOCS: use upstream license files Aug 25, 2021 LICENSE.LGPL DOCS: use upstream license files Aug 25, 2021 README.md build: add meson build support Nov 14, 2021 RELEASE_NOTES Release 0.34.0 Nov 1, 2021 VERSION Update VERSION Nov 1, 2021 appveyor.yml appveyor: use latest build image for fixed MSYS2 installation Feb 22, 2021 bootstrap.py bootstrap: log caught URLError Dec 22, 2020 meson.build meson: remove iconv hacks and bump req. version Jan 9, 2022 meson_options.txt meson: also check for generic lua.pc Nov 15, 2021 mpv_talloc.h mpv_talloc.h: rename from talloc.h Jan 11, 2016 version.py build: add version.py for generating version.h Nov 14, 2021 version.sh version.sh: bump copyright year Oct 25, 2021 wscript wscript: switch shaderc checks to pkgconfig Dec 19, 2021 wscript_build.py libmpv: remove opengl_cb API and other deprecated symbols Dec 15, 2021 View code [ ] mpv External links Overview System requirements Downloads Changelog Compilation Meson Waf Release cycle Bug reports Contributing License History Contact README.md mpv logo mpv * External links * Overview * System requirements * Downloads * Changelog * Compilation * Release cycle * Bug reports * Contributing * License * Contact External links * Wiki * 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, Windows 7 or later, or OSX 10.8 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. 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. 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. Compilation Compiling with full features requires development files for several external libraries. One of the two build systems supported by mpv is required: meson or waf. Meson can be obtained from your distro or PyPI. Waf can be downloaded by using the ./bootstrap.py script. It will get the lastest version of waf that was tested with mpv. Some documentation about the differences between the build systems are located in build-system-differences. Meson After creating your build directory (e.g. meson 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 build meson compile -C build meson install -C build Waf For a list of the available build options use ./waf configure --help. If you think you have support for some feature installed but configure fails to detect it, the file build/config.log may contain information about the reasons for the failure. NOTE: To avoid cluttering the output with unreadable spam, --help only shows one of the two switches for each option. If the option is autodetected or enabled by default, the --disable-*** switch is printed; if the option is disabled by default, the --enable-*** switch is printed. Either way, you can use --enable-*** or --disable-** regardless of what is printed by --help. To build the software you can use ./waf build: the result of the compilation will be located in build/mpv. You can use ./waf install to install mpv to the prefix after it is compiled. Example: ./bootstrap.py ./waf configure ./waf ./waf install Essential dependencies (incomplete list): * gcc or clang * X development headers (xlib, xrandr, xext, xscrnsaver, xinerama, libvdpau, libGL, GLX, EGL, xv, ...) * Audio output development headers (libasound/ALSA, pulseaudio) * FFmpeg libraries (libavutil libavcodec libavformat libswscale libavfilter and either libswresample or libavresample) * 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, yasm 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 OSX, and Arabic/Indic scripts on any platform) FFmpeg dependencies (when building FFmpeg): * gcc or clang, yasm 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, you either have to use MSYS2 and MinGW, or cross-compile from Linux with MinGW. See Windows compilation. Release cycle Every other month, an arbitrary git snapshot is made, and is assigned a 0.X.0 version number. No further maintenance is done. The goal of releases is to make Linux distributions happy. Linux distributions are also expected to apply their own patches in case of bugs and security issues. 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. Using the bug tracker as place for simple questions is fine but IRC is recommended (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 on what you could contribute with. License GPLv2 "or later" by default, LGPLv2.1 "or later" with --enable-lgpl. See details. History This software is based on the MPlayer project. Before mpv existed as a project, the code base was briefly developed under the mplayer2 project. For details, see the FAQ. Contact Most activity happens on the IRC channel and the github issue tracker. * GitHub issue tracker: issue tracker (report bugs here) * User IRC Channel: #mpv on irc.libera.chat * Developer IRC Channel: #mpv-devel on irc.libera.chat About Command line video player mpv.io Topics audio c video ffmpeg multimedia mpv libav mplayer Resources Readme License View license Stars 17.3k stars Watchers 478 watching Forks 2.1k forks Releases 80 v0.34.1 Latest Jan 3, 2022 + 79 releases Packages 0 No packages published Contributors 352 * @pigoz * @haasn * @kevmitch * @Akemi * @rossy * @wiiaboo * @Dudemanguy * @avih * @divVerent * @giselher * @sfan5 + 341 contributors Languages * C 87.4% * Lua 4.2% * Python 2.4% * Objective-C 2.3% * Swift 1.7% * Meson 1.1% * Other 0.9% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.