summaryrefslogtreecommitdiffstats
path: root/debian/README.debian
blob: 00ea1fb4a6d53beea3393df25718f8c971168c62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
mpv for Debian
==============

This is the Debian package produced by the mpv-build scripts. It
contains a statically linked libass and ffmpeg (vs. libav contained in
Debian) from upstream. It is not an official part of the Debian
distribution. Instructions for building this package can be found in
the README.rst file in the mpv-build directory, or equivalently at [1].

[1] https://github.com/mpv-player/mpv.

Differences with distribution packages
============================================

Debian testing/unstable already has a separate official package for mpv, which
closely tracks the current upstream releases. Debian stable, the latest Ubuntu
and Ubuntu LTS all also have official mpv packages, however these range from
outdated to extremely outdated. This pacakge can be compiled on all of these
platforms and offers either the most recent mpv release or git master.

This pacakge statically links against the latest release or git master of ffmpeg.
Older Debian and Ubuntu use the libav fork of ffmpeg, and therefore that's what their
official mpv packages link against. However, ffmpeg is preferred for building
mpv as it enables more features. This situation is however changing as the
Debian testing version is now built against ffmpeg.

Since the release cycle of libass is quite slow, even the "release" version of
this package links against the libass git master. Debian unstable uses the
latest libass release, while Debian stable, the latest Ubuntu and Ubuntu LTS all
use buggy and outdated libass releases.

In order to maintain this interoperability between distributions, this
package must necessarily disable some features by default which are not
universally supported. These include Wayland support and libfdk for high
quality AAC encoding. These can hoewver be trivially enabled provided
sufficiently recent libraries as described below.

On the other hand, this package enables native smb support (to play smb://
URLs), video4linux2 (for web cams and video capture) and caca (for silly ascii
art output) which is not present in the official Debian package.

Due to a persistent packaging bug, the official Ubuntu Trusty mpv is missing lua
support (therefore no on-screen controller).

There are several other features that are disabled in both this
package as well as the official Debian package because they are not
widely needed or used. These include openal output, portaudio output,
rsound/libroar/sndio input/output, sdl1/sdl2, joystick, videoio.h/libpt. If
you find any of these useful, please open an issue at [3] explaining
why you think the feature in question should be enabled, and we can
try and include it in this package.

[3] https://github.com/mpv-player/mpv-build/issues

Building from git master
========================
In addition to the default of building the latest released
version of mpv, this package can also trivially be built from the
latest git master of mpv (as well as ffmpeg and libass). As described
in README.rst [1], this is achieved by calling

    ./update --master

prior to building this Debian package.

Additional ffmpeg features
==========================

All relevant and free ffmpeg features/codecs should be enabled. If
something is missing, it is a bug, and should be reported at [3].
Features for which distribution packages are not universally available
are the exception. To enable the non-free Fraunhofer FDK AAC codec:

    apt-get install libfdk-aac-dev
    echo --enable-nonfree --enable-libfdk-aac >> ffmpeg_options

This must be done prior to building the package.

Wayland support
===============

According to wayland.freedesktop.org, "Wayland is intended as a
simpler replacement for X, easier to develop and maintain". It is very
much a work in progress, so adequate functionality requires recent
version of the relevant libraries. At present, this not possible on
Debian Wheezy. To maintain interoperability, this package therefore
does not build with Wayland support by default.

If you want Wayland support, you will need to manually install the
necessary packages before building:

    apt-get install libwayland-dev libxkbcommon-dev libegl1-mesa-dev

The mpv build will then automatically detect and link to them if they are new
enough.