summaryrefslogtreecommitdiffstats
path: root/debian/README.debian
blob: 5d8981ab00f324a3a4a4e059e7fec15565977137 (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
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. The biggest
difference between this package and the one in the official Debian
archive is that it statically links against the latest upstream
version of ffmpeg and libass. Debian uses the libav fork of ffmpeg,
and therefore that's what the official package links 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.

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

Furthermore, the official Debian mpv package is ONLY available in
unstable/testing. It will, in general, not work in Debian stable
(there is currently no version in backports) or in any current release
of Ubuntu. 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 Saucy (13.10). 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 sdl2 audio/video output,
encoding/decoding with libopus, Wayland support, and harfbuzz
support for RTL scripts (the latter three may may nevertheless be
trivially enabled provided sufficiently recent libraries - see
below). On the other hand, this package enables video4Linux and native
samba support (to play smb:// URLs), which are not present in the
official Debian package.

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 (not Wheezy or Ubuntu Precise or Saucy). 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.