summaryrefslogtreecommitdiffstats
path: root/debian/README.debian
blob: 599dfc8847e40a47e9d996d830ecf2b007663b86 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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 the official Debian package
============================================

Debian testing/unstable already has a separate official package for
mpv, which closely tracks the current upstream releases. Ubuntu trusty
also has an outdated version of mpv (0.3.4). The biggest difference
between this package and the official Debian/Ubuntu ones is that it
statically links against the latest upstream version of ffmpeg and
libass. Debian and therefore also Ubuntu use the libav fork of ffmpeg,
and therefore that's what the official packages link against. However,
as described at [2], ffmpeg is preferred for building mpv. The version
of libass in Debian unstable also has a slight lag behind the current
upstream release used to build this package. The version in trusty is
locked at 0.10.1.

[2] https://github.com/mpv-player/mpv/wiki/FFmpeg-versus-Libav

Furthermore, the official packages will only work in the release
they're contained in. This package on the other hand, builds and
installs on both Debian Wheezy (stable), and Jessie (testing/unstable)
as well as Ubuntu Precise (12.04) and Trusty (14.04). For the older
distributions, this package is probably the best alternative.

In order to maintain this interoperability between distributions, this
package must necessarily disable some features by default which are
not universally supported. These include encoding/decoding with libopus,
Wayland support, harfbuzz support for RTL scripts and sdl2 audio/video
output (you may nevertheless trivially enable these provided
sufficiently recent libraries - see below). On the other hand, this
packge enables caca (for silly ascii art output) which is not present
in the official Debian package. The official Ubuntu package is
additionally missing video4Linux, and native samba support (to play
smb:// URLs). Due to a packaging bug, it is also 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, 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

Finally, 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. Unfortunately, libopus falls into this category as
there is no package for it in Ubuntu Precise (12.04). To enable it
elsewhere, install the relevant development package

    apt-get install libopus-dev

and add the relevant options to the mpv-build/ffmpeg_options file

    echo --enable-libopus >> ffmpeg_options

This must be done prior to building the package.

Similarly, to enable the non-free Fraunhofer FDK AAC codec:

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

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 is only possible
on Debian Jessie or Ubuntu Trusty (not Wheezy or Ubuntu Precise). 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

The mpv build will then automatically detect and link to them.

Harfbuz support
===============

To enable RTL (Right To Left) support in libass requires only
installing the relevant development package:

    apt-get install libharfbuzz-dev

The libass configure will then automatically find it. This is
necessary as the package is not available in Ubunutu Precise.

SDL2 Support
============

mpv has support for sdl2 video and audio output, but it is disabled by
default because opengl/alsa are preferred. The required packages are
also not available in Ubuntu Precise. If however, you wish to
try the sdl2 modules install the sdl2 development package:

    apt-get install libsdl2-dev

and add the option to the mpv_options file

    echo --enable-sdl2 >> mpv_options