Make the most of Plex
Run Plex on your NAS, on Docker… anywhere! Plus a quick look at Jellyfin.
As has become fashionable in recent years, you can also use Docker to install Plex. Or if like us you’ve fallen for the Portainer web management interface for Docker, you can use that. Many NAS OSes make it possible for you to install Docker images too, including OpenMediaVault (OMV). There used to be a Plex plugin for OMV, but that’s sadly no more, so onwards with Docker and Portainer!
The idea is the same if you’re running Docker directly or through another NAS system, but do check the documents at
https://github.com/plexinc/pmsdocker for more details. You can, for example, skip having to claim the Plex instance using the PLEX_CLAIM environment variable. In addition, if you’re fed up with manually having to start Plex from Portainter, change the Restart Policy to ‘Always’ after following the three-step guide below. An alternative image is available from
linuxconfig/plex, which you may want to read more about from https:// linuxserver.io.
Plex uses its own bundle of codecs (via the multimedia libavcodec library) so you should be able to play pretty much any (sanely encoded) file that you can throw at it. Hardware-accelerated transcoding is available to Plex Pass subscribers, provided you have compatible hardware. The docs recommend at least a fifth-generation Intel Core (although chips as old as the 2011 Sandy Bridge are supported) to use VA-API acceleration. AMD hardware should work with this too via the open source AMDGPU driver, and Nvidia’s proprietary NVEnc API is also supported. The corresponding NVDec decoder is only supported on Windows. The client apps and web player will use whatever hardware is available. You can see how much work your server is doing either the old-fashioned way by logging in and using top, or by paying for a Plex Pass to view some dashboard analytics.
Speaking of analytics, if you have a lot of people using your server then you can use the third-party Tautulli application to see who’s watching what. Tautulli used to be a Plex plugin, but the plugin management interface was disbanded by Plex in 2018. Besides movies and music, Plex can also look after your photos. This is a great way to share them with friends, and also rediscover old memories. Plex can edit metadata and make use of geotags to help keep them organised,
too. And of course, it can render endlessly repeating slideshows to entertain your guests at dinner parties.
Beyond Plex
There are of, course, other media streaming options besides Plex. One of the most popular is Emby, which started life as Media Browser (see, ‘MB’, geddit?). At one stage Emby was open source, then a few components became proprietary, and as of 2018 it’s now closed source. Like Plex, a premium option (Emby Premiere) is available that offers additional features. However, unlike Plex this doesn’t provide you with any content. You’ll find the latest releases (currently 4.4.3) at https://emby. media/linux-server.html and a beta 4.5 series release is also available. The installation process is much the same as Plex, although a Flatpak is available if you’d rather do things that way.
For a truly open source media server, we’d direct you to Jellyfin. It’s a fork of Emby and as you can imagine apps are available for mobile devices, as well as Kodi, Google Cast, AirPlay and more.
Docker images are also available – the official one (jellyfin/jellyfin on Docker hub) uses a Debian base, but linuxserver. io and hotio provide Ubuntu based images. There’s nothing to stop you (if you followed the Portainer/Docker install section earlier) from adding the Jellyfin image and bindmounting it to the same media directory. This will enable you to do a side-by-side comparison of each tool.
To install Jellyfin on Ubuntu server (you’ll probably have the two packages below on desktop already) start by adding HTTPS transport for Apt and enabling the Universe repository (needed for FFMPEG dependencies):
$ sudo apt install apt-transport-https $ sudo add-apt-repository universe
Next, add the Jellyfin signing key to the Apt keyring:
$ wget -O - https://repo.jellyfin.org/ ubuntu/jellyfin_team.gpg.key | sudo apt-key add -
Now add the repository with (change Focal and amd64 if you’re on a different release or architecture):
$ echo “deb [arch=amd64] https:// repo.jellyfin.org/ubuntu focal main | sudo tee /etc/apt/sources.list.d/jellyfin. list
And finally update the repos and install Jellyfin:
$ sudo apt update
$ sudo apt install jellyfin
“Plex uses its own bundle of codecs so you should be able to play pretty much any (sanely encoded) file that you can throw at it.”