Installing Jellyfin Multimedia Player on CentOS 7

Publish: 2020-03-02 | Modify: 2020-04-07

Jellyfin is an open-source media player, similar to Plex that was introduced in a previous blog post. While the free version of Plex can meet daily needs, it does have some limitations in terms of functionality. Jellyfin, on the other hand, is free and open-source, and does not require any additional fees. If you want to experience more features for free, Jellyfin may be a better choice.

Jellyfin

Installing Jellyfin using Docker

Make sure you have Docker installed. If not, please refer to online tutorials for installation instructions. Here, we will not provide installation instructions for Docker. Installing Jellyfin using Docker is relatively simple.

  1. Get the Jellyfin image:
docker pull jellyfin/jellyfin
  1. Create the necessary configuration and cache directories for Jellyfin:
mkdir -p /opt/jellyfin/config
mkdir -p /opt/jellyfin/cache
  1. Run the Jellyfin service:
docker run -d \
 --volume /opt/jellyfin/config:/config \
 --volume /opt/jellyfin/cache:/cache \
 --volume /path/to/media:/media \
 --user 1000:1000 \
 --net=host \
 --restart=unless-stopped \
 jellyfin/jellyfin

If you have Docker Compose installed, you can also create a docker-compose.yml file in the jellyfin directory with the following content:

version: "3"
services:
  jellyfin:
    image: jellyfin/jellyfin
    user: 1000:1000
    network_mode: "host"
    volumes:
      - /opt/jellyfin/config:/config
      - /opt/jellyfin/cache:/cache
      - /path/to/media:/media

Allow port 8096 through the firewall:

firewall-cmd --zone=public --add-port=32400/tcp --permanent
firewall-cmd --reload

If using docker-compose, run docker-compose up command. If no errors appear, you can access Jellyfin's initialization interface in your browser at http://IP:8096 and complete the initialization setup according to the prompts.

Installing Jellyfin using RPM

The Docker installation method has some limitations, such as unrecognized mounts. Therefore, Xiaoz switched to using the RPM package installation method, which does not have these problems.

First, install the required dependencies:

yum install libicu fontconfig -y

Then, go to https://repo.jellyfin.org/releases/server/centos/ to download the latest available RPM package for CentOS. Note that the provided link may become invalid if the official website removes older versions of the RPM package.

# Download the RPM package
wget -c https://repo.jellyfin.org/releases/server/centos/stable/jellyfin-10.5.3-1.el7.x86_64.rpm
# Alternative download
wget -c http://soft.xiaoz.org/linux/jellyfin-10.5.3-1.el7.x86_64.rpm
# Install Jellyfin
rpm -Uvh --nodeps jellyfin-10.5.3-1.el7.x86_64.rpm

Then, start Jellyfin:

# Start Jellyfin
systemctl start jellyfin
# Set Jellyfin to start on boot
systemctl enable jellyfin

Access http://IP:8096 and follow the on-screen instructions to complete the Jellyfin initialization.

Jellyfin Initialization

Jellyfin Initial Setup

Installing ffmpeg

Jellyfin requires ffmpeg for transcoding, but the RPM package does not include ffmpeg. You need to install ffmpeg manually. Here is a method for statically installing ffmpeg:

# Download ffmpeg
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
# Extract
tar -xvf ffmpeg-git-amd64-static.tar.xz
# Move the files
cp ffmpeg-git-20200211-amd64-static/ffmpeg /usr/bin/
cp ffmpeg-git-20200211-amd64-static/ffprobe /usr/bin/

In the Jellyfin backend, go to Server -> Playback and set the FFmpeg path to /usr/bin/ffmpeg.

FFmpeg Path

Original Quality Playback in Jellyfin

If you have a good network connection and powerful hardware, and do not require transcoding, you can disable the following options under "Server -> Users -> Media Playback":

  • Allow audio playback that requires transcoding
  • Allow video playback that requires transcoding
  • Allow playback of videos that need to be converted but do not need to be re-encoded

Disable Transcoding

User Experience

I have tried both Jellyfin and Plex, and they are similar in terms of functionality. Plex is more mature and well-developed, but there are some limitations in its free version. Jellyfin, on the other hand, is completely free and has powerful features. However, Jellyfin currently does not have an official Windows client, but I believe it will gradually improve. If you are willing to pay, choose Plex. If you want a completely free option, consider Jellyfin.

Conclusion

Jellyfin is suitable for installation on NAS or local network hosts, allowing you to easily create your own home media library. It can also be installed on a large HDD VPS to achieve online streaming. Additionally, Jellyfin can be used with the powerful KODI media player. I will provide further introductions in the future.

This article references the following sources:

Jellyfin Official Website: https://jellyfin.org/


Comments