• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H03-Jan-2022-462354

DOCS/H03-May-2022-19,81215,299

TOOLS/H03-Jan-2022-5,2804,386

audio/H03-Jan-2022-17,28012,889

ci/H03-Jan-2022-232180

common/H03-Jan-2022-5,0333,668

demux/H03-Jan-2022-15,76812,061

etc/H03-May-2022-1,179559

filters/H03-Jan-2022-8,9146,212

input/H03-Jan-2022-5,2023,942

libmpv/H03-May-2022-3,685481

misc/H03-Jan-2022-3,4622,299

options/H03-May-2022-10,4387,997

osdep/H03-Jan-2022-9,1146,625

player/H03-Jan-2022-28,71022,485

stream/H03-Jan-2022-7,6275,880

sub/H03-May-2022-6,5994,889

ta/H03-Jan-2022-1,157781

test/H03-May-2022-1,8131,465

video/H03-Jan-2022-73,58355,801

waftools/H03-Jan-2022-1,7371,393

.editorconfigH A D03-Jan-2022189 118

.gitignoreH A D03-Jan-2022422 3935

CopyrightH A D03-Jan-20223.7 KiB7562

LICENSE.GPLH A D03-Jan-202217.7 KiB340281

LICENSE.LGPLH A D03-Jan-202225.9 KiB503418

README.mdH A D03-Jan-20228.1 KiB217151

RELEASE_NOTESH A D03-Jan-20225.9 KiB167130

VERSIONH A D03-Jan-20227 21

appveyor.ymlH A D03-Jan-20221.2 KiB3933

bootstrap.pyH A D03-Jan-20221.8 KiB5739

mpv_talloc.hH A D03-Jan-2022115 85

version.shH A D03-Jan-20221.4 KiB6749

wscriptH A D03-May-202236.6 KiB1,0541,009

wscript_build.pyH A D03-May-202230 KiB755657

README.md

1![mpv logo](https://raw.githubusercontent.com/mpv-player/mpv.io/master/source/images/mpv-logo-128.png)
2
3# mpv
4
5
6* [External links](#external-links)
7* [Overview](#overview)
8* [System requirements](#system-requirements)
9* [Downloads](#downloads)
10* [Changelog](#changelog)
11* [Compilation](#compilation)
12* [Release cycle](#release-cycle)
13* [Bug reports](#bug-reports)
14* [Contributing](#contributing)
15* [License](#license)
16* [Contact](#contact)
17
18
19## External links
20
21
22* [Wiki](https://github.com/mpv-player/mpv/wiki)
23* [FAQ][FAQ]
24* [Manual](https://mpv.io/manual/master/)
25
26
27## Overview
28
29
30**mpv** is a free (as in freedom) media player for the command line. It supports
31a wide variety of media file formats, audio and video codecs, and subtitle types.
32
33There is a [FAQ][FAQ].
34
35Releases can be found on the [release list][releases].
36
37## System requirements
38
39- A not too ancient Linux, Windows 7 or later, or OSX 10.8 or later.
40- A somewhat capable CPU. Hardware decoding might help if the CPU is too slow to
41  decode video in realtime, but must be explicitly enabled with the `--hwdec`
42  option.
43- A not too crappy GPU. mpv's focus is not on power-efficient playback on
44  embedded or integrated GPUs (for example, hardware decoding is not even
45  enabled by default). Low power GPUs may cause issues like tearing, stutter,
46  etc. The main video output uses shaders for video rendering and scaling,
47  rather than GPU fixed function hardware. On Windows, you might want to make
48  sure the graphics drivers are current. In some cases, ancient fallback video
49  output methods can help (such as `--vo=xv` on Linux), but this use is not
50  recommended or supported.
51
52## Downloads
53
54
55For semi-official builds and third-party packages please see
56[mpv.io/installation](https://mpv.io/installation/).
57
58## Changelog
59
60
61There is no complete changelog; however, changes to the player core interface
62are listed in the [interface changelog][interface-changes].
63
64Changes to the C API are documented in the [client API changelog][api-changes].
65
66The [release list][releases] has a summary of most of the important changes
67on every release.
68
69Changes to the default key bindings are indicated in
70[restore-old-bindings.conf][restore-old-bindings].
71
72## Compilation
73
74
75Compiling with full features requires development files for several
76external libraries. Below is a list of some important requirements.
77
78The mpv build system uses [waf](https://waf.io/), but we don't store it in the
79repository. The `./bootstrap.py` script will download the latest version
80of waf that was tested with the build system.
81
82For a list of the available build options use `./waf configure --help`. If
83you think you have support for some feature installed but configure fails to
84detect it, the file `build/config.log` may contain information about the
85reasons for the failure.
86
87NOTE: To avoid cluttering the output with unreadable spam, `--help` only shows
88one of the two switches for each option. If the option is autodetected or
89enabled by default, the `--disable-***` switch is printed; if the option is
90disabled by default, the `--enable-***` switch is printed. Either way, you can
91use `--enable-***` or `--disable-**` regardless of what is printed by `--help`.
92
93To build the software you can use `./waf build`: the result of the compilation
94will be located in `build/mpv`. You can use `./waf install` to install mpv
95to the *prefix* after it is compiled.
96
97Example:
98
99    ./bootstrap.py
100    ./waf configure
101    ./waf
102    ./waf install
103
104Essential dependencies (incomplete list):
105
106- gcc or clang
107- X development headers (xlib, xrandr, xext, xscrnsaver, xinerama, libvdpau,
108  libGL, GLX, EGL, xv, ...)
109- Audio output development headers (libasound/ALSA, pulseaudio)
110- FFmpeg libraries (libavutil libavcodec libavformat libswscale libavfilter
111  and either libswresample or libavresample)
112- zlib
113- iconv (normally provided by the system libc)
114- libass (OSD, OSC, text subtitles)
115- Lua (optional, required for the OSC pseudo-GUI and youtube-dl integration)
116- libjpeg (optional, used for screenshots only)
117- uchardet (optional, for subtitle charset detection)
118- nvdec and vaapi libraries for hardware decoding on Linux (optional)
119
120Libass dependencies (when building libass):
121
122- gcc or clang, yasm on x86 and x86_64
123- fribidi, freetype, fontconfig development headers (for libass)
124- harfbuzz (required for correct rendering of combining characters, particularly
125  for correct rendering of non-English text on OSX, and Arabic/Indic scripts on
126  any platform)
127
128FFmpeg dependencies (when building FFmpeg):
129
130- gcc or clang, yasm on x86 and x86_64
131- OpenSSL or GnuTLS (have to be explicitly enabled when compiling FFmpeg)
132- libx264/libmp3lame/libfdk-aac if you want to use encoding (have to be
133  explicitly enabled when compiling FFmpeg)
134- For native DASH playback, FFmpeg needs to be built with --enable-libxml2
135  (although there are security implications, and DASH support has lots of bugs).
136- AV1 decoding support requires dav1d.
137- For good nvidia support on Linux, make sure nv-codec-headers is installed
138  and can be found by configure.
139
140Most of the above libraries are available in suitable versions on normal
141Linux distributions. For ease of compiling the latest git master of everything,
142you may wish to use the separately available build wrapper ([mpv-build][mpv-build])
143which first compiles FFmpeg libraries and libass, and then compiles the player
144statically linked against those.
145
146If you want to build a Windows binary, you either have to use MSYS2 and MinGW,
147or cross-compile from Linux with MinGW. See
148[Windows compilation][windows_compilation].
149
150
151## Release cycle
152
153Every other month, an arbitrary git snapshot is made, and is assigned
154a 0.X.0 version number. No further maintenance is done.
155
156The goal of releases is to make Linux distributions happy. Linux distributions
157are also expected to apply their own patches in case of bugs and security
158issues.
159
160Releases other than the latest release are unsupported and unmaintained.
161
162See the [release policy document][release-policy] for more information.
163
164## Bug reports
165
166
167Please use the [issue tracker][issue-tracker] provided by GitHub to send us bug
168reports or feature requests. Follow the template's instructions or the issue
169will likely be ignored or closed as invalid.
170
171Using the bug tracker as place for simple questions is fine but IRC is
172recommended (see [Contact](#Contact) below).
173
174## Contributing
175
176
177Please read [contribute.md][contribute.md].
178
179For small changes you can just send us pull requests through GitHub. For bigger
180changes come and talk to us on IRC before you start working on them. It will
181make code review easier for both parties later on.
182
183You can check [the wiki](https://github.com/mpv-player/mpv/wiki/Stuff-to-do)
184or the [issue tracker](https://github.com/mpv-player/mpv/issues?q=is%3Aopen+is%3Aissue+label%3Ameta%3Afeature-request)
185for ideas on what you could contribute with.
186
187## License
188
189GPLv2 "or later" by default, LGPLv2.1 "or later" with `--enable-lgpl`.
190See [details.](https://github.com/mpv-player/mpv/blob/master/Copyright)
191
192## History
193
194This software is based on the MPlayer project. Before mpv existed as a project,
195the code base was briefly developed under the mplayer2 project. For details,
196see the [FAQ][FAQ].
197
198## Contact
199
200
201Most activity happens on the IRC channel and the github issue tracker.
202
203- **GitHub issue tracker**: [issue tracker][issue-tracker] (report bugs here)
204- **User IRC Channel**: `#mpv` on `irc.libera.chat`
205- **Developer IRC Channel**: `#mpv-devel` on `irc.libera.chat`
206
207[FAQ]: https://github.com/mpv-player/mpv/wiki/FAQ
208[releases]: https://github.com/mpv-player/mpv/releases
209[mpv-build]: https://github.com/mpv-player/mpv-build
210[issue-tracker]:  https://github.com/mpv-player/mpv/issues
211[release-policy]: https://github.com/mpv-player/mpv/blob/master/DOCS/release-policy.md
212[windows_compilation]: https://github.com/mpv-player/mpv/blob/master/DOCS/compile-windows.md
213[interface-changes]: https://github.com/mpv-player/mpv/blob/master/DOCS/interface-changes.rst
214[api-changes]: https://github.com/mpv-player/mpv/blob/master/DOCS/client-api-changes.rst
215[restore-old-bindings]: https://github.com/mpv-player/mpv/blob/master/etc/restore-old-bindings.conf
216[contribute.md]: https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md
217