Media Servers
Media Server information and related Media Server Applications
About Media Servers
Information regarding media servers.
Choosing a Media Server
Choosing to run a a home media server can be a fun and educational hobby while also providing a central source to store, control and serve all your media.
Most people want a media server to consolidate all their media content and access that content from one unified source displayed in an attractive menu that is easy to navigate and use. There are a number of excellent free and open source media servers available that do just that as well as paid, proprietary servers and appliances. It just depends on what you are trying to achieve as an end result that should drive you to one or another.
When selecting which media server software to invest your time (and sometimes $$) you should do so by asking yourself (and answering) the following questions.
- How do you want to access your media?
- Do you want to access your media only at home or also away from home?
- Do you want to share your media with others?
- From what device(s) do you want to access your media?
- TV?
- Projector?
- Smartphone?
- Computer?
- Home audio devices?
- What type of media do you want to serve from your media center?
- Video? For example, a movie library, TV show library, personal videos, etc.
- Audio? For example, a music library or streaming music service
- Live TV? For example, cable or over-the-air signals
- Images? For example, Family photos, hobbyist images, etc.
- Do you want to integrate your media server into a Home Theater?
- Do you want to automate any processes of your media server? For example, automatically controlling lighting when a movie starts, stops or is paused.
- Do you want a Cinema-like experience with trailers and/or bumpers before a movie starts?
- What visual or audio requirements will you have for content on your media server?
- Any format or resolution preferences for your content? such as:
- SD, HD or 4K for video content
- MP3 or FLAC for audio content
- Any format or resolution preferences for your content? such as:
- How comfortable are you with Computing?
- Do you like to be "hands on" or do you "just want it to work"?
- Do you like to be "hands on" or do you "just want it to work"?
The answers to these questions will help you decide which media server type, software and hardware will best suit your needs.
The Most Popular Media Servers
The Most Popular Open-Source Media Servers
The most popular open-source media servers are:
A Feature Comparison
The media server features we will compare are:
- Server Platforms - The device type(s) where you can install the media server software. The server platform can also be its own client as with a Home Theater server. The server platforms are different than the client platforms.
- Client Platforms - The device(s) that can access your media server remotely. In some cases, there is no separate client application. The server software itself must be installed on any device you wish to access your media library. In this case the client platform will be "self".
- Hardware Transcoding - This indicates if the media server supports hardware transcoding. Transcoding is a process media servers use to convert a video or audio file into a different format so it can be accessible to a wide range of devices. Software transcoding is CPU intensive so to offload the transcoding process to a dedicated piece of hardware with its own CPU is preferable for best performance.
- Local Access without Internet - Some media server software requires you to setup an account with the developer. In some cases, you have to sign-in using your account to access your media server libraries even if the server is local.
- Music / Sync - This indicates if the server supports a music library and/or the ability to download or sync content.
- Photo / eBooks - This indicates if the server supports photo libraries and/or an electronic book library.
- Live TV / DVR - This indicates if the server integrates Live TV and/or has DVR functionality. Usually via an over-the-air (OTA) or cable peripheral tuner card for the media server or a network OTA/cable appliance such as a HD Homerun.
Media Server |
Server Platforms |
Client Platforms |
Hardware Transcoding |
Local Access without Internet |
Music / Sync |
Photo / eBooks |
Live TV / DVR |
Subscription |
Plex |
Linux, Windows, Docker, NAS, Nvidia Shield, Western Digital My Passport Wireless Pro, NETGEAR X10 router |
Android, IOS, Web, Roku, Amazon Fire TV, Apple TV, Android TV, Chromecast,LG, Samsung, VIDAA, Vizio, and Hisense Smart TVs |
Yes1 |
No2 |
Yes / Yes |
Yes / No |
Yes / Yes1
|
Free / Paid
|
JellyFin |
Linux, Windows, MacOS, Docker |
Android, IOS, Android TV, Roku, Apple TV, WebOS (LG Smart TVs) |
Yes |
Yes |
Yes / Yes |
Yes |
Yes |
Free |
Kodi |
Windows, macOS, Linux, Android, iOS, Raspberry Pi | self |
No |
Yes |
Yes / No |
Yes / Yes3 |
Yes / Yes |
Free |
Emby |
Windows, macOS, Linux, Docker, NAS |
PC or mobile browser has full playback capability.
The following clients are supported with a paid subscription:Windows, Linux, MacOS, IOS, Android, Fire TV, Android TV, Roku, Apple TV, LG and Samsung Smart TVs, XBox, PS4 |
Yes1 |
Yes |
Yes / Yes1 |
Yes / Yes |
Yes1 / Yes1 |
Free / Paid |
Media Portal |
Windows |
Self, Android, IOS |
Yes3 |
Yes |
Yes / No |
Yes / No |
Yes / Yes |
Free |
Universal Media Server |
Windows, macOS, Linux, Docker |
It is able to stream videos, audio and images to any DLNA-capable device |
Yes |
Yes |
Yes / No |
Yes / No |
No / No |
Free |
OSMC |
Windows, MacOS, Linux, Raspberry Pi, and Vero (OSMC's flagship appliance) OSMC did support Apple TV but it will no longer received any updates as it has been deprecated. |
self |
No |
Yes |
Yes / No |
Yes / No |
No / No |
Free |
1 A paid subscription is required for this feature
2 Local access to your Plex server without Internet is possible by activating the internal DLNA server. This must be done while you have Internet access as it requires you to sign-in to your account to change the configuration. You won't be accessing your Plex server via the standard UI however. You will need to have a DLNA client to do that. Roku has a DLNA app in its app store and there are several available for the PC, such as VLC.
3 Supports this feature if using an add-on or plug-in
Complimentary Applications for Media Servers
Complimentary Applications for Media Servers
There are number of complimentary software packages, applications and tools available for various media servers. Some are designed for content management such as transcoding digital video formats, naming content, managing subtitles and automating content acquisition while others provide statistical information, just to name a few.
You will inevitably find you have a need for some of these applications and tools. I use a number of them and those I use are detailed in the Content Management book on this site.
Content Management
Various software applications I use to manage or automate media server content
Tautulli
Tautulli is a 3rd party application that you can run alongside your Plex Media Server to monitor activity and track various statistics. Most importantly, these statistics include what has been watched, who watched it, when and where they watched it, and how it was watched. All statistics are presented in a nice and clean interface with many tables and graphs.
Sonarr
Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
Installation
The Sonarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own. These instructions provide generic guidance that should apply to any Sonarr Docker image.
I use a docker image from linuxserver.io to install Sonarr.
If you prefer to install Sonarr via another method go to Sonarr's official downloads page.
Running Sonarr as a container
Basic examples for getting this image running as a container
Docker Compose
---
version: "2"
services:
sonarr:
image: linuxserver/sonarr:3.0.10
container_name: sonarr
restart: unless-stopped
environment:
- TZ=Europe/London # Specify a timezone to use
- PUID=1000 # User ID to run as
- PGID=1000 # Group ID to run as
volumes:
- /host/path/to/data:/data # Location of all your media
- /host/path/to/config:/config # Contains all relevant configuration files.
ports:
- 8989:8989/tcp # Web UI
CLI
docker create \
--name=sonarr \
-e TZ=Europe/London `# Specify a timezone to use` \
-e PUID=1000 `# User ID to run as` \
-e PGID=1000 `# Group ID to run as` \
-v /host/path/to/data:/data `# Location of all your media` \
-v /host/path/to/config:/config `# Contains all relevant configuration files.` \
-p 8989:8989/tcp `# Web UI` \
--restart unless-stopped \
linuxserver/sonarr:3.0.10
Avoid common pitfalls
Volumes and Paths
There are two common problems with Docker volumes: Paths that differ between the Sonarr and download client container and paths that prevent fast moves and hard links.
The first is a problem because the download client will report a download's path as /torrents/My.Show.S01E01/
, but in the Sonarr container that might be at /downloads/My.Show.S01E01/
. The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths.
Most Docker images suggest paths like /tv
and /downloads
. This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Sonarr container, like /torrents
.
The best solution is to use a single, common volume inside the containers, such as /data
. Your Series would be in /data/tv
, torrents in /data/downloads/torrents
and/or usenet downloads in /data/downloads/usenet
.
If this advice is not followed, you may have to configure a Remote Path Mapping in the Sonarr web UI (Settings › Download Clients).
Ownership and Permissions
Permissions and ownership of files is one of the most common problems for Sonarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes.
Keep in mind that Sonarr will need read and write to the download folders as well as the final folders.
For a more detailed explanation of these issues, see The Best Docker Setup and Docker Guide wiki article.
Install Sonarr
To install and use these Docker images, you'll need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose.
-
ghcr.io/hotio/sonarr:release
hotio doesn't specify any default volumes, besides
/config
. Images are automatically updated multiple times per hour if upstream changes are found. Read the instructions on how to install the image. -
ghcr.io/linuxserver/sonarr:latest
linuxserver.io is one of the most prolific and popular Docker image maintainers. They also maintain images for most of the popular download clients as well. LinuxServer specifies a couple of optional default volumes such as
/tv
and/downloads
. The default volumes are not optimal nor recommended. Our recommendation is to use a single volume for the data, as mentioned above.
Radarr
Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. Note that only one type of a given movie is supported. If you want both an 4k version and 1080p version of a given movie you will need multiple instances.
Installation
The Radarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own. These instructions provide generic guidance that should apply to any Radarr Docker image.
I use a docker image from linuxserver.io to install Radarr.
If you prefer to install Radarr via another method go to Radarr's official downloads page.
Running Radarr as a container
Basic examples for getting this image running as a container
Docker Compose
---
version: "2"
services:
radarr:
image: linuxserver/radarr:4.3.2
container_name: radarr
restart: unless-stopped
environment:
- UMASK_SET=022 # control permissions of files and directories created by Radarr
- TZ=Europe/London # Specify a timezone to use EG Europe/London, this is required for Radarr
- PUID=1000 # for UserID
- PGID=1000 # for GroupID
volumes:
- /host/path/to/movies:/movies # Location of Movie library on disk (See note in Application setup)
- /host/path/to/downloads:/downloads # Location of download managers output directory (See note in Application setup)
- /host/path/to/config:/config # Database and Radarr configs
ports:
- 7878:7878/tcp # The port for the Radarr webinterface
CLI
docker create \
--name=radarr \
-e UMASK_SET=022 `# control permissions of files and directories created by Radarr` \
-e TZ=Europe/London `# Specify a timezone to use EG Europe/London, this is required for Radarr` \
-e PUID=1000 `# for UserID` \
-e PGID=1000 `# for GroupID` \
-v /host/path/to/movies:/movies `# Location of Movie library on disk (See note in Application setup)` \
-v /host/path/to/downloads:/downloads `# Location of download managers output directory (See note in Application setup)` \
-v /host/path/to/config:/config `# Database and Radarr configs` \
-p 7878:7878/tcp `# The port for the Radarr webinterface` \
--restart unless-stopped \
linuxserver/radarr:4.3.2
Avoid common pitfalls
Volumes and Paths
There are two common problems with Docker volumes: Paths that differ between the Radarr and download client container and paths that prevent fast moves and hard links.
The first is a problem because the download client will report a download's path as /torrents/My.Movie.2018/
, but in the Radarr container that might be at /downloads/My.Movie.2018/
. The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths.
Most Docker images suggest paths like /movies
and /downloads
. This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Radarr container, like /torrents
.
The best solution is to use a single, common volume inside the containers, such as /data
. Your Movies would be in /data/Movies
, torrents in /data/downloads/torrents
and/or usenet downloads in /data/downloads/usenet
.
If this advice is not followed, you may have to configure a Remote Path Mapping in the Radarr web UI (Settings › Download Clients).
Ownership and Permissions
Permissions and ownership of files is one of the most common problems for Radarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes.
Keep in mind that Radarr will need read and write to the download folders as well as the final folders.
Install Radarr
To install and use these Docker images, you'll need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose.
-
hotio/radarr:release
hotio doesn't specify any default volumes, besides
/config
. Images are automatically updated multiple times in an hour if upstream changes are found. Hotio also builds our Pull Requests which may be useful for testing. Read the instructions on how to install the image. -
lscr.io/linuxserver/radarr:latest
linuxserver.io is one of the most prolific and popular Docker image maintainers. They also maintain images for most of the popular download clients as well. LinuxServer specifies a couple of optional default volumes such as
/movies
and/downloads
. The default volumes are not optimal nor recommended. Our recommendation is to use a single volume for the data, as mentioned above.
Prowlarr
Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required.
Lidarr
Lidarr
Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new albums from your favorite artists and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available.
Installation
The Lidarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own. These instructions provide generic guidance that should apply to any Lidarr Docker image.
I use a docker image from linuxserver.io to install Lidarr.
If you prefer to install Lidarr via another method go to Lidarr's official downloads page.
Running Lidarr as a container
Basic examples for getting this image running as a container
Docker Compose
---
version: "2"
services:
lidarr:
image: linuxserver/lidarr:1.0.2
container_name: lidarr
restart: no
CLI
docker create \
--name=lidarr \ --restart no \
linuxserver/lidarr:1.0.2
Avoid common pitfalls
Volumes and Paths
There are two common problems with Docker volumes: Paths that differ between the Lidarr and download client container and paths that prevent fast moves and hard links.
The first is a problem because the download client will report a download's path as /torrents/My.Music.2018/
, but in the Lidarr container that might be at /downloads/My.Music.2018/
. The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths.
Most Docker images suggest paths like /musics
and /downloads
. This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Lidarr container, like /torrents
.
The best solution is to use a single, common volume inside the containers, such as /data
. Your Musics would be in /data/Musics
, torrents in /data/downloads/torrents
and/or usenet downloads in /data/downloads/usenet
.
If this advice is not followed, you may have to configure a Remote Path Mapping in the Lidarr web UI (Settings › Download Clients).
Ownership and Permissions
Permissions and ownership of files is one of the most common problems for Lidarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes.
Keep in mind that Lidarr will need read and write to the download folders as well as the final folders.
Install Lidarr
To install and use these Docker images, you'll need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose.
-
hotio/lidarr:release
hotio doesn't specify any default volumes, besides
/config
. Images are automatically updated multiple times in an hour if upstream changes are found. Hotio also builds our Pull Requests which may be useful for testing. Read the instructions on how to install the image. -
lscr.io/linuxserver/lidarr:latest
linuxserver.io is one of the most prolific and popular Docker image maintainers. They also maintain images for most of the popular download clients as well. LinuxServer specifies a couple of optional default volumes such as
/musics
and/downloads
. The default volumes are not optimal nor recommended. Our recommendation is to use a single volume for the data, as mentioned above.
Overseerr
Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex.
It provides your users with a way to make requests for your media server and automatically (or with your approval) sends the request to Sonarr or Radarr.
Installation
You can install Overseerr on various platforms. I recommend the docker container for installation. If you need another installation method they can be found here:
Docker Compose
---
version: '3'
services:
overseerr:
image: sctx/overseerr:latest
container_name: overseerr
environment:
- LOG_LEVEL=debug
- TZ=Asia/Tokyo
- PORT=5055 #optional
ports:
- 5055:5055
volumes:
- /path/to/appdata/config:/app/config
restart: unless-stopped
Be sure to replace /path/to/appdata/config in the examples with a valid host directory path. If this volume mount is not configured correctly, your Overseerr settings/data will not be persisted when the container is recreated (e.g., when updating the image or rebooting your machine).
The TZ
environment variable value should also be set to the TZ database name of your timezone!
CLI
docker run -d \
--name overseerr \
-e LOG_LEVEL=debug \
-e TZ=Asia/Tokyo \
-e PORT=5055 `#optional` \
-p 5055:5055 \
-v /path/to/appdata/config:/app/config \
--restart unless-stopped \
sctx/overseerr
To run the container as a specific user/group, you may optionally add --user=[ user | user:group | uid | uid:gid | user:gid | uid:group ]
to the above command.
Updating
Stop and remove the existing container:
docker stop overseerr && docker rm overseerr
Pull the latest image:
docker pull sctx/overseerr
Finally, run the container with the same parameters originally used to create the container:
docker run -d ...
You may alternatively use a third-party updating mechanism, such as Watchtower or Ouroboros to keep Overseerr up-to-date automatically.
Bazarr
Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.
Be aware that Bazarr doesn't scan disk to detect series and movies: It only takes care of the series and movies that are indexed in Sonarr and Radarr.
Installation
There are several platforms on which you can install Bazarr. This install is focused on the docker container method of installation since that is my primary way to handle most server applications.
If you do not want to install via a container, the other installation methods for Bazarr can be found on the official Bazarr wiki.
Running Bazarr as a container
Basic examples for getting this image running as a container. The image I am using here is maintained by linuxserver.io
You CANNOT store your config directory over an NFS share as it is unsupported by SQLITE. You will receive a locked database error.
Docker Compose
---
version: "2"
services:
bazarr:
image: linuxserver/bazarr:1.2.0
container_name: bazarr
restart: unless-stopped
environment:
- UMASK_SET # Control permissions of files and directories created by Bazarr
- TZ # Specify a timezone to use EG Europe/London.
- PUID # ID of user to take ownership of application/files
- PGID # GID of user to take ownership of application/files
volumes:
- /host/path/to/tv:/tv # Location of your TV Shows
- /host/path/to/movies:/movies # Location of your movies
- /host/path/to/config:/config # Bazarr data
ports:
- 6767:6767/tcp # Allows HTTP access to the internal webserver.
CLI
docker create \
--name=bazarr \
-e UMASK_SET `# Control permissions of files and directories created by Bazarr` \
-e TZ `# Specify a timezone to use EG Europe/London.` \
-e PUID `# ID of user to take ownership of application/files` \
-e PGID `# GID of user to take ownership of application/files` \
-v /host/path/to/tv:/tv `# Location of your TV Shows` \
-v /host/path/to/movies:/movies `# Location of your movies` \
-v /host/path/to/config:/config `# Bazarr data` \
-p 6767:6767/tcp `# Allows HTTP access to the internal webserver.` \
--restart unless-stopped \
linuxserver/bazarr:1.2.0
Plex
Plex orginally was a Media Server that made it possible to stream your personal media remotely. While it still provides that service, it has evolved, for better or worse, into a streaming platform of its own. Something akin to NetFlix or Hulu with native ad supported offerings.
If you have a collection of media, Plex enables you to stream all that stuff from a computer or server onto your TV or smartphone. And while you can use Plex for free, a lot of its best features, especially media server related features, require a paid subscription to Plex Pass.
On a personal note, I don't really like "sharing" my media server user interface (UI) with content from another source, even if it is Plex itself. Granted Plex as a media server is excellent, but there are a number of issues starting to pile up since they decided to become a streaming platform themselves.
There are a number of pros and cons for Plex as it is today. Here is my list:
Plex Pros |
Plex Cons |
Supports a wide variety of server and client platforms and devices. |
Extremely limited UI customization. User interfaces can vary greatly from one platform to another. |
Hardware transcoding is excellent |
Limited ability to access your media locally from your Plex server if your Internet is down. This is due to Plex's cloud authentication. You have to be able to sign-in to Plex via the Internet to access your local server.
DLNA is Plex's solution to this, but it is a horrible experience as you must rely upon 3rd party client side DLNA apps. Roku's DLNA client sucks, for example. |
Efficient use and decent monitoring of device resources |
No support for eBooks or audio books |
Loads of community support |
Most of the popular media server specific features, such as hardware transcoding, downloads, mobile sync, DVR recording, music lyrics, skipping intros and credits, custom sharing restrictions and bandwidth and transcoding limits require a paid subscription or a lifetime membership. |
Supports Live TV and DVR options (we are talking locally, not Plex's own offerings) |
Android and IOS mobile apps require a fee |
Very good database management and backup options |
No ability to grant friends access to your local Live TV unless you make them part of your Home account (which lists them with your home users every time you login) |
Regular updates and patches |
User management is a pain. Used to be able to go to an intuitive user menu and make changes to any user, friend or home user. Now you have to go to two menus, Plex Home & Manage Library Access to manage users.
You used to see your users full email address as their username on your server. Now it is some truncated semi-readable name. You have no ability to change the name of your user's accounts to something human friendly. If you use Tautulli you can change those truncated email/usernames there, but it won't show up in Plex that way. |
New libraries on your Plex server show up at the bottom of your user's menus. Requiring them to re-pin and change the order of their menus anytime there's a library addition or change.
For example, if I add a new library (or change the name of an existing library) to my Plex server and grant users access to it, they won't necessarily see it without pinning it to their menu (which means they probably won't ever know it's there).
If they do know about it and go looking for it; it will be at the bottom of the list instead of where it ought to be (with the other libraries from my server). |
After paying for a Plex Pass lifetime subscription years ago, I find I don't really care for the direction Plex has taken. With little or no say in how my media server is used by Plex, I am actively seeking a replacement. So far, JellyFin is in the lead as a replacement for Plex.
With that said, if you want an alternative or supplemental streaming service, Plex has an attractive list of free offerings. However, if you want a Home Theater media server or a media server you can completely control and share your libraries with friends and family, you may want to look elsewhere.
Installation
You can find all the installation instructions and downloads for Plex here:
Plex Official Docker Installation
Plex Media Server Installation Guide
Jellyfin
Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached. Your media, your server, your way.
Jellyfin enables you to collect, manage, and stream your media. Run the Jellyfin server on your system and gain access to the leading free-software entertainment system, bells and whistles included.
Jellyfin is the "new kid on the block" as it is the newest in a long line of free and open source media servers.
Jellyfin's predecessors have either become defunct, lost popular support or upon becoming successful switched to a "pay" platform (I'm specifically thinking of Emby for that last one).
I am hoping Jellyfin becomes the Ubuntu of the media server world.
While it still has a way to go for me to cut the Plex cord, it has made great strides in the past couple of years. Thanks to a growing skilled community of supporters who believe you can have a great self hosted and self controlled free and open source media server at home.
There are a number of features and issues Jellyfin needs to implement and correct to become the best competition to the likes of Plex and Emby.
In no particular order; here are my thoughts on the most important features (to me) of Jellyfin:
- Client ubiquity 👍
- Jellyfin already has clients for Android & IOS smartphones and tablets, as well as, Amazon fire TV, Apple TV, Android TV, LG WebOS, and Roku. These clients vary on their polish and utility. I expect these will improve over time.
- Server statistics 👎
- Jellyfin, thus far, is lacking in any sort of server statistics which are useful to server operators. Something like Tautulli integrated into the server itself would be a positive differentiating factor versus other media servers.
- Hardware Transcoding 👌
- While Jellyfin does OK hardware transcoding, it is very difficult to find a stable configuration. I would like to see a better default config that is stable "out of the box" without much tweaking. For the most frequently used hardware, like Nvidia for example. Similar to activating hardware transcoding in Plex.
- While Jellyfin does OK hardware transcoding, it is very difficult to find a stable configuration. I would like to see a better default config that is stable "out of the box" without much tweaking. For the most frequently used hardware, like Nvidia for example. Similar to activating hardware transcoding in Plex.
- Metadata 👍
- Jellyfin's handling of metadata and images is excellent. I quite like being able to store the images with my media. Unlike Plex, who stores the images as random string filenames seperately from the media.
- I particularly like the metadata storage as NFO files with the media, for ease of access and so the server doesn't have to scrape the data from the Internet every time unless I tell it to.
- Live TV & EPG 👎
- So far I haven't been impressed with Jellyfin's Live TV implementation. I have experienced multiple issues with playback from a HD Homerun. Playback from the same device on Plex is flawless and "just works".
- I'm torn as to how I feel about Jellyfin's EPG handling. I understand that guide data can be a pain and to get it free you need to overcome some obstacles, but there has got to be a better, less complicated solution to get free guide data into Jellyfin. Rather than 3rd party zap2it and cron, how about a plug-in that does it for you? Since I'm not a programmer I really don't know what would have to be done to make that happen, I'm just saying 😉