Jellyfin Desktop Client
Go to file
2016-11-29 12:56:50 +01:00
bundle Allow PMP to switch GPU 2016-11-28 18:45:01 +01:00
CMakeModules Bump Qt dependencies 2016-11-28 18:45:01 +01:00
external QsLog: add missing lock 2016-07-19 11:52:14 +02:00
qt-patches Add our qt 5.7 patch 2016-07-08 12:40:44 +02:00
release-notes Update release notes 2016-11-25 13:36:11 +01:00
resources Improve shorcuts - Related to plexinc/plex-media-player-private#523 2016-11-28 18:45:00 +01:00
scripts Run conan on windows 2016-11-28 18:45:00 +01:00
src Tweak how we include the web-client from conan 2016-11-29 12:56:50 +01:00
.clang-format Initial public commit of Plex Media Player 2015-10-13 11:05:27 +02:00
.clang-tidy Adjust .clang-tidy for public struct member names 2016-04-12 08:47:41 +02:00
.gitignore Ignore new CLion build folder and conan files 2016-11-28 18:45:00 +01:00
CMakeLists.txt Tweak how we include the web-client from conan 2016-11-29 12:56:50 +01:00
conanfile.py Tweak how we include the web-client from conan 2016-11-29 12:56:50 +01:00
LICENSE License under GPLv2 2015-10-13 11:06:01 +02:00
README.md Fix build instructions when using system Qt 2016-11-07 17:01:18 +01:00

Building

You need:

  • Qt 5.6 (on OSX and windows it will be automatically downloaded when you run CMake)
  • cmake 3.1 or newer
  • ninja is recommended for building
  • FFmpeg 3.x and mpv from github

Building on Mac OS X

Configure

If you're happy just building from the command line then run CMake for the ninja build tool:

  • Install ninja with homebrew:
    • brew install ninja
  • Install mpv and other dependencies with homebrew:
    • brew install mpv --with-shared --HEAD
  • mkdir build ; cd build
  • cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=output ..

Build (ninja):

  • ninja

Make a distributable package:

  • ninja install (be patient, it's slow)

Or if you prefer working in Xcode, run CMake for the xcode build):

  • mkdir build ; cd build
  • cmake -GXcode ..

Building on Linux

These instructions are for Ubuntu 16.04 LTS. They were tested on a fresh install without extra options and with auto-updates applied.

First, some preparations:

  • sudo apt install autoconf automake libtool libharfbuzz-dev libfreetype6-dev libfontconfig1-dev libx11-dev libxrandr-dev libvdpau-dev libva-dev mesa-common-dev libegl1-mesa-dev yasm libasound2-dev libpulse-dev libuchardet-dev zlib1g-dev libfribidi-dev git libgnutls-dev libgl1-mesa-dev cmake
  • mkdir pmp
  • cd pmp

Systems not based on Debian/Ubuntu will have similar packages, but you'll need to figure out their names yourself.

Downloading and installing Qt

If your distro provides Qt 5.6 or later packages, try to use them. Otherwise, proceed with these instructions.

  • wget http://download.qt.io/official_releases/qt/5.6/5.6.1-1/qt-opensource-linux-x64-5.6.1-1.run
  • chmod +x qt-opensource-linux-x64-5.6.1-1.run
  • sudo ./qt-opensource-linux-x64-5.6.1-1.run

A setup dialog should appear. Click through the installation. It should install itself at /opt/Qt5.6.1. The instructions below assume this path, although you can change it if you know how.

Building mpv and ffmpeg

While most distros have FFmpeg and mpv packages, they're often outdated. It's recommended to build a current version, or to get them from 3rd party sources (some are listed on https://mpv.io/installation/).

Here are instructions how to build them locally. First you need to install some build prerequisites:

  • git clone https://github.com/mpv-player/mpv-build.git
  • cd mpv-build
  • echo --enable-libmpv-shared > mpv_options
  • you can also add echo --disable-cplayer >> mpv_options to prevent mpv CLI from being built
  • ./rebuild -j4 (this steps checks out all sources and compiles them and takes a while)
  • sudo ./install
  • sudo ldconfig

With this, libmpv should have been installed to /usr/local/. It does not conflict with the system. In particular, it does not install or use FFmpeg libraries. (The FFmpeg libraries are statically linked in libmpv when using mpv-build.)

You can also attempt to skip the installation step, and change the paths in the PMP build step to the build directory, but this is more complicated.

Building plex-media-player

Assuming that everything else has installed correctly, building Plex Media Player should now be fairly straightforward:

  • cd ~/pmp/
  • git clone git://github.com/plexinc/plex-media-player
  • cd plex-media-player
  • mkdir build
  • cd build
  • cmake -DCMAKE_BUILD_TYPE=Debug -DQTROOT=/opt/Qt5.6.1/5.6/gcc_64/ -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
  • make -j4
  • sudo make install

You should now be able to start PMP as plexmediaplayer from the terminal.

If you use your distro's Qt, use -DQTROOT=/usr or similar.

Normally, the Ninja generator (via -GNinja) is preferred, but cmake + ninja support appears to be broken on Ubuntu 16.04.

If you want, you can wipe the ~/pmp/ directory, as the PMP installation does not depend on it. Only Qt and libmpv are needed.

License

Plex Media Player is licensed under GPL v2. See the LICENSE file. Licenses of dependencies are summarized under resources/misc/licenses.txt. This file can also be printed at runtime when using the --licenses option.