I do things a bit more custom on my server than most folks.
Using the install-debuntu.sh
script, I was running into an issue where jellyfin would not start properly, due to the included ffmpeg not working.
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.
If you've already installed and can't start, purge it.
sudo apt purge jellyfin* -y
sudo apt update
sudo apt install jellyfin-server jellyfin-web
sudo systemctl stop jellyfin.service
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
Find your ffmpeg install.
locate ffmpeg
which ffmpeg
Edit /etc/default/jellyfin
Find JELLYFIN_FFMPEG_OPT
Update it to your path.
I have a large ZFS datastore in a /dvr
path, so I don't want jellyfin's cache or anything in my root path.
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 chown g+s /dvr/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!