summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md208
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