diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a454d4 --- /dev/null +++ b/README.md @@ -0,0 +1,208 @@ +![mpv logo](https://raw.githubusercontent.com/mpv-player/mpv.io/master/source/images/mpv-logo-128.png) + +# mpv + + +* [External links](#external-links) +* [Overview](#overview) +* [System requirements](#system-requirements) +* [Downloads](#downloads) +* [Changelog](#changelog) +* [Compilation](#compilation) +* [Release cycle](#release-cycle) +* [Bug reports](#bug-reports) +* [Contributing](#contributing) +* [License](#license) +* [Contact](#contact) + + +## External links + + +* [Wiki](https://github.com/mpv-player/mpv/wiki) +* [FAQ][FAQ] +* [Manual](https://mpv.io/manual/master/) + + +## 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][FAQ]. + +Releases can be found on the [release list][releases]. + +## System requirements + +- A not too ancient Linux, Windows 10 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. 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](https://mpv.io/installation/). + +## Changelog + + +There is no complete changelog; however, changes to the player core interface +are listed in the [interface changelog][interface-changes]. + +Changes to the C API are documented in the [client API changelog][api-changes]. + +The [release list][releases] 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][restore-old-bindings]. + +## Compilation + + +Compiling with full features requires development files for several +external libraries. Mpv requires [meson](https://mesonbuild.com/index.html) +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 + +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, 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][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][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][release-policy] for more information. + +## Bug reports + + +Please use the [issue tracker][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](#Contact) below). + +## Contributing + + +Please read [contribute.md][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](https://github.com/mpv-player/mpv/wiki/Stuff-to-do) +or the [issue tracker](https://github.com/mpv-player/mpv/issues?q=is%3Aopen+is%3Aissue+label%3Ameta%3Afeature-request) +for ideas on what you could contribute with. + +## License + +GPLv2 "or later" by default, LGPLv2.1 "or later" with `-Dgpl=false`. +See [details.](https://github.com/mpv-player/mpv/blob/master/Copyright) + +## 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][FAQ]. + +## Contact + + +Most activity happens on the IRC channel and the github issue tracker. + +- **GitHub issue tracker**: [issue tracker][issue-tracker] (report bugs here) +- **User IRC Channel**: `#mpv` on `irc.libera.chat` +- **Developer IRC Channel**: `#mpv-devel` on `irc.libera.chat` + +[FAQ]: https://github.com/mpv-player/mpv/wiki/FAQ +[releases]: https://github.com/mpv-player/mpv/releases +[mpv-build]: https://github.com/mpv-player/mpv-build +[issue-tracker]: https://github.com/mpv-player/mpv/issues +[release-policy]: https://github.com/mpv-player/mpv/blob/master/DOCS/release-policy.md +[windows_compilation]: https://github.com/mpv-player/mpv/blob/master/DOCS/compile-windows.md +[interface-changes]: https://github.com/mpv-player/mpv/blob/master/DOCS/interface-changes.rst +[api-changes]: https://github.com/mpv-player/mpv/blob/master/DOCS/client-api-changes.rst +[restore-old-bindings]: https://github.com/mpv-player/mpv/blob/master/etc/restore-old-bindings.conf +[contribute.md]: https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md |