summaryrefslogtreecommitdiffstats
path: root/debian/README.debian
blob: af11ca1200e794cc36cb1a83a17b893c7418c1f3 (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
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.
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 Debian
has added a version of mpv built against ffmpeg to the "experimental"
repository.

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, 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 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.

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 Debian Wheezy.