Skip to content

Instantly share code, notes, and snippets.

@pjobson
Last active February 6, 2026 22:03
Show Gist options
  • Select an option

  • Save pjobson/0846ab6e21f3b11ac4079bff313c3e6f to your computer and use it in GitHub Desktop.

Select an option

Save pjobson/0846ab6e21f3b11ac4079bff313c3e6f to your computer and use it in GitHub Desktop.
Jellyfin Custom Install

Installing Jellyfin w/ Custom FFMPEG

I do things a bit more custom on my server than most folks.

I was getting this error when running sudo systemctl status jellyfin.service

MediaBrowser.Common.FfmpegException: Failed to find valid ffmpeg

The status also showed it was trying to start with its own ffmpeg install.

/usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg

Attempting to run this ffmpeg directly /usr/lib/jellyfin-ffmpeg/ffmpeg would throw this error.

/usr/lib/jellyfin-ffmpeg/ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libopenmpt.so.0: undefined symbol: mpg123_param2

Searching that error as "jellyfin" symbol lookup error: /lib/x86_64-linux-gnu/libopenmpt.so.0: undefined symbol: mpg123_param2 returns one item with no useful solution.

Uninstall Jellyfin

If you've already installed and can't start, purge it.

sudo apt purge jellyfin* -y

Reinstall Jellyfin 10.11.6

Currently Jellyfin 11.x has some bug where it takes forever to load large libraries, probably due to caching.

This installs server and web and sets them to hold instead of upgrading to 11.x.

sudo apt install jellyfin-server=10.10.7+ubu2204 jellyfin-web=10.10.7+ubu2204
sudo apt-mark hold jellyfin-server jellyfin-web

Install or Build FFMPEG

You can install ffmpeg with apt or you can build your own from source, I always build my own for reasons. Building it is outside of the scope of this gist.

sudo apt install ffmpeg

Update FFMPEG Path

Find your ffmpeg install.

locate ffmpeg
which ffmpeg

After updating, Jellyfin overwrote the service deleting my changes, because of course it did.

The error log started complaining that it couldn't find /usr/lib/jellyfin-ffmpeg/ffmpeg and /usr/lib/jellyfin-ffmpeg/ffprobe.

I build my own ffmpg and put it in /opt/video/bin you will have to update this to where your ffmpeg is.

The simple solution was to make this directory and symlink those files.

sudo mkdir /usr/lib/jellyfin-ffmpeg/
sudo ln -s /opt/video/bin/ffmpeg  /usr/lib/jellyfin-ffmpeg/ffmpeg
sudo ln -s /opt/video/bin/ffprobe /usr/lib/jellyfin-ffmpeg/ffprobe
sudo systemctl restart jellyfin.service
sudo systemctl status  jellyfin.service

Change Paths & Make Symlinks

I have a large ZFS datastore in a /dvr path, so I don't want jellyfin's cache or anything in my root path.

sudo systemctl stop jellyfin.service
cd /var/lib
sudo mv jellyfin /dvr/
sudo ln -s /dvr/jellyfin jellyfin
cd /var/cache
sudo mv jellyfin/ /dvr/jellyfin/cache/
sudo ln -s /dvr/jellyfin/cache/ jellyfin
sudo chown -R jellyfin:jellyfin /dvr/jellyfin/
sudo chmod g+s /dvr/jellyfin

Restart Jellyfin

sudo systemctl restart jellyfin.service
sudo systemctl status jellyfin.service

This should return something like this.

● jellyfin.service - Jellyfin Media Server
     Loaded: loaded (/lib/systemd/system/jellyfin.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/jellyfin.service.d
             └─jellyfin.service.conf
     Active: active (running) since Fri 2025-05-02 00:07:03 EDT; 6s ago
   Main PID: 4124592 (jellyfin)
      Tasks: 18 (limit: 309281)
     Memory: 424.0M
        CPU: 4.293s
     CGroup: /system.slice/jellyfin.service
             └─4124592 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --ffmpeg=/opt/video/bin/ffmpeg

Navigate to: http://localhost:8096

Enjoy!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment