SOLVED missing ffmpeg after bad update jellyfin

CaspHop

Cadet
Joined
Sep 8, 2022
Messages
8
I have been using Jellyfin on my trueNAS Core NAS system for a few months now. Last week I had some problems with the update. I think the update was interrupted during the process. After that I had no access to my server at all.
So I went into the jail shell and did the update manually. Since then, the server seems to be up and running again.
Now the problem is that I now get the message "This client isn't compatible with the media and the server isn't sending a compatible media format.".
A look at the log file showed me that there is obviously a problem with ffmpeg.
So I took a look at the jellyfin playback settings and saw that the ffmpeg path was not set.

I went back to the jail shell and tried to reinstall ffmpeg, but I'm not a pro at dealing with this stuff.
What I could do is to update the whole package again (including ffmpeg).
This seems to change nothing.

I think the path to ffmpeg should be "/usr/local/bin/ffmpeg" (that's what I get as a result when I type "where ffmpeg").
But when I try that, I get another error message that says "We're unable to find FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again."

I'm a little confused that "/usr/local/bin/ffmpeg" appears to be a file, not a folder, as far as I can tell.
But as I mentioned, I'm no expert.

If I want to remove ffmpeg in the shell (to reinstall it) jellyfin itself will be removed aswell
1697736460676.png


I am afraid that all my settings in Jellyfin will disappear if I do this.

I hope someone can help me with this problem.


My current Jellyfin version is 10.8.10
Operating system: TrueNAS-13.0-U5.3
 
Joined
Oct 22, 2019
Messages
3,641
I have been using Jellyfin on my trueNAS Core NAS system for a few months now. Last week I had some problems with the update. I think the update was interrupted during the process. After that I had no access to my server at all.
So I went into the jail shell and did the update manually. Since then, the server seems to be up and running again.
What update? TrueNAS itself?

Can't imagine an interrupted jail update would prevent you from accessing the TrueNAS server...

EDIT: Unless you meant the Jellyfin "server"?



I think the path to ffmpeg should be "/usr/local/bin/ffmpeg" (that's what I get as a result when I type "where ffmpeg").
But when I try that, I get another error message that says "We're unable to find FFmpeg using the path you've entered.
Enter this for the "path" in the text field for FFmpeg: /usr/local/bin/



So I went into the jail shell and did the update manually.
pkg update/upgrade? Or updating the jail itself?



Now the problem is that I now get the message "This client isn't compatible with the media and the server isn't sending a compatible media format.".
This error message can also occur due to file/folder ownership and permission issues.



If I want to remove ffmpeg in the shell (to reinstall it) jellyfin itself will be removed aswell
Issue the -f option: pkg install -f ffmpeg
 
Last edited:

CaspHop

Cadet
Joined
Sep 8, 2022
Messages
8
What update? TrueNAS itself?

Can't imagine an interrupted jail update would prevent you from accessing the TrueNAS server...

EDIT: Unless you meant the Jellyfin "server"?
I have updated the Jellyfin plugin on the server. This seems to be broken. This is where the problem started.

Enter this for the "path" in the text field for FFmpeg: /usr/local/bin/
I have already tried that. Same result.

pkg update/upgrade? Or updating the jail itself?
PKG update. But I have also updated the jail itself in the meantime.
This error message can also occur due to file/folder ownership and permission issues.
Yes, that could be, but I think that is not the case here.
  1. The log file shows a clear ffmpeg error.
  2. I can still add files to the folders and jellyfin adds these files to its libary
  3. There are some files that can still be played on my jellyfin Adroid app.

Issue the -f option: pkg install -f ffmpeg
Thank you for this tip. I have tried this. Unfortunately still the same result.
 

Whattteva

Wizard
Joined
Mar 5, 2013
Messages
1,824
So I took a look at the jellyfin playback settings and saw that the ffmpeg path was not set.
Under Playback -> Transcoding -> FFmpeg path: you should put in /usr/local/bin/ffmpeg

I think the path to ffmpeg should be "/usr/local/bin/ffmpeg" (that's what I get as a result when I type "where ffmpeg").
But when I try that, I get another error message that says "We're unable to find FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again."
What does ls -lh /usr/local/bin/ffmpeg say?

I'm a little confused that "/usr/local/bin/ffmpeg" appears to be a file, not a folder, as far as I can tell.
But as I mentioned, I'm no expert.
Indeed. It is an executable, and not a folder.

If I want to remove ffmpeg in the shell (to reinstall it) jellyfin itself will be removed aswell
View attachment 71384

I am afraid that all my settings in Jellyfin will disappear if I do this.
Don't do this yet. Also, you can backup your settings database. It should be located in /var/db/jellyfin/
 
Joined
Oct 22, 2019
Messages
3,641
I have updated the Jellyfin plugin on the server.
Oh, the "Plugin".

I highly recommend you only use manually-created jails (or installer scripts), rather than Plugins, which are deprecated.

Like @Whattteva noted, you can backup your Jellyfin config and database found in /var/db/jellyfin/
 

Whattteva

Wizard
Joined
Mar 5, 2013
Messages
1,824
Oh, the "Plugin".

I highly recommend you only use manually-created jails (or installer scripts), rather than Plugins, which are deprecated.
Ah, I missed this part. Yes, your jellyfin being broken is likely because the plugin had different paths. It was likely using the community github script, which used to install with the name of jellyfinserver instead of jellyfin that is now in the official ports tree.
 
Joined
Oct 22, 2019
Messages
3,641
At this point, iXsystems needs to include, in the next iteration of TrueNAS Core, a massive warning message the first time someone attempts to install a new "Plugin".

Too many new users fall victim to this. :frown:
 

Whattteva

Wizard
Joined
Mar 5, 2013
Messages
1,824
To be fair, the breakage of Jellyfin isn't really the fault of plugins.
I had that installed on my vanilla FreeBSD system and it also failed on update because they migrated the custom pkg file to the official ports tree, but didn't really provide any migration tools/guide.
 

CaspHop

Cadet
Joined
Sep 8, 2022
Messages
8
Thank you very much for all the answers.

I will try to answer all the questions.
I am traveling at the moment, so I may forget to give some information.

First of all:
Yes, I used the TrueNAS community plugins to install Jellyfin. I'm not very familiar with installing plugins or jails in the shell, so I'm grateful to have a one-click install option.


Under Playback -> Transcoding -> FFmpeg path: you should put in /usr/local/bin/ffmpeg
This is exactly the place where I have been making the entries all along. This entry is empty in my settings
Screenshot_20231021-101819_Jellyfin.jpg


If I enter /usr/local/bin/ffmpeg or /usr/local/bin/ I always get this message:
Screenshot_20231021-120639_Jellyfin.jpg


What does ls -lh /usr/local/bin/ffmpeg say?
This:
Screenshot_20231021-102651_Chrome.jpg


Ah, I missed this part. Yes, your jellyfin being broken is likely because the plugin had different paths. It was likely using the community github script, which used to install with the name of jellyfinserver instead of jellyfin that is now in the official ports tree.
Am I understanding you correctly that you are suggesting that I back up the database, then that I uninstall the Jellyfin plugin and do a new install using the shell instead of the plugin functionality?
 

Whattteva

Wizard
Joined
Mar 5, 2013
Messages
1,824
This is exactly the place where I have been making the entries all along. This entry is empty in my settings
That looks correct.

If I enter /usr/local/bin/ffmpeg or /usr/local/bin/ I always get this message:

This:
That looks correct also. That's a curious one.

Am I understanding you correctly that you are suggesting that I back up the database, then that I uninstall the Jellyfin plugin and do a new install using the shell instead of the plugin functionality?
You may end up having to do this. I'm not familiar with the way the plugin sets everything up, but if you updated manually using pkg install jellyfin it's possible to have a borked install afterwards because the plugin existed before jellyfin became part of the official ports tree, so it was sort of a custom install that someone did. I myself was doing this until probably several months ago when they finally included it to the ports tree and even made a Bastille template for it.
 

gyfer

Dabbler
Joined
Feb 13, 2020
Messages
14
the default location off ffmpeg is correct, but just ffmpeg not running

update or new jail install libtasn1 to version 4.19.0 , and that broke ffmpeg
if you try to run ffmpeg in jail, it will have error message as follow :
ld-elf.so.1: /usr/local/lib/libtasn1.so.6: Undefined symbol "strverscmp@FBSD_1.7"

To resolve this issue, you need to install libstasn1-4.18.0 or older pkg to restore ffmpeg
I created a script for your convenience:
Any input is welcome
 

CaspHop

Cadet
Joined
Sep 8, 2022
Messages
8
the default location off ffmpeg is correct, but just ffmpeg not running

update or new jail install libtasn1 to version 4.19.0 , and that broke ffmpeg
if you try to run ffmpeg in jail, it will have error message as follow :
ld-elf.so.1: /usr/local/lib/libtasn1.so.6: Undefined symbol "strverscmp@FBSD_1.7"

To resolve this issue, you need to install libstasn1-4.18.0 or older pkg to restore ffmpeg
I created a script for your convenience:
Any input is welcome
Many thanks for this help.

I have been able to run the script.

What bothers me here is whether this script will also lead to an uninstall of Jellyfin itself.
1701115676474.png

So do I have to perform this uninstallation?

In this case I would make a backup of my database first!
 
Joined
Oct 22, 2019
Messages
3,641
My Jellyfin jail, based on FreeBSD 13.2-RELEASE-p5 has no such issues, and it is fully up-to-date on all packages:
  • jellyfin: 10.8.10_3
  • ffmpeg: 6.1_1,1
  • libtasn1: 4.19.0
Code:
ffmpeg version 6.1 Copyright (c) 2000-2023 the FFmpeg developers
built with FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --docdir=/usr/local/share/doc/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disable-libcelt --enable-shared --enable-pic --enable-gpl --cc=cc --cxx=c++ --disable-alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libaom --disable-libaribb24 --disable-libaribcaption --enable-asm --enable-libass --disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcodec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394 --disable-debug --enable-htmlpages --enable-libdrm --disable-libfdk-aac --disable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang --disable-libgme --enable-gmp --enable-gnutls --enable-version3 --disable-libgsm --enable-libharfbuzz --enable-iconv --disable-libilbc --disable-libjack --enable-libjxl --disable-libklvanc --disable-libkvazaar --disable-ladspa --enable-libmp3lame --enable-lcms2 --disable-liblensfun --disable-libbluray --enable-libplacebo --disable-librsvg --disable-librtmp --enable-libxml2 --disable-lv2 --disable-mbedtls --disable-libmfx --disable-libmodplug --disable-libmysofa --enable-network --disable-nonfree --enable-nvenc --disable-openal --disable-opencl --disable-opengl --disable-libopenh264 --disable-libopenjpeg --disable-libopenmpt --disable-openssl --disable-libopenvino --enable-optimizations --enable-libopus --disable-pocketsphinx --disable-libpulse --disable-librabbitmq --disable-librav1e --disable-librist --enable-runtime-cpudetect --disable-librubberband --disable-sdl2 --enable-libshaderc --disable-libsmbclient --disable-libsnappy --disable-sndio --disable-libsoxr --disable-libspeex --disable-libsrt --disable-libssh --enable-libsvtav1 --disable-libtensorflow --disable-libtesseract --disable-libtheora --disable-libtwolame --disable-libuavs3d --enable-libv4l2 --enable-vaapi --disable-vapoursynth --enable-vdpau --disable-libvidstab --enable-libvmaf --enable-libvorbis --disable-libvo-amrwbenc --disable-libvpl --enable-libvpx --enable-vulkan --enable-libwebp --enable-libx264 --enable-libx265 --disable-libxavs2 --enable-libxcb --disable-libxvid --disable-outdev=xv --disable-libzimg --disable-libzmq --disable-libzvbi
libavutil      58. 29.100 / 58. 29.100
libavcodec     60. 31.102 / 60. 31.102
libavformat    60. 16.100 / 60. 16.100
libavdevice    60.  3.100 / 60.  3.100
libavfilter     9. 12.100 /  9. 12.100
libswscale      7.  5.100 /  7.  5.100
libswresample   4. 12.100 /  4. 12.100
libpostproc    57.  3.100 / 57.  3.100
root@jellyfin:~ # ffmpeg
ffmpeg version 6.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
  configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --docdir=/usr/local/share/doc/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disable-libcelt --enable-shared --enable-pic --enable-gpl --cc=cc --cxx=c++ --disable-alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libaom --disable-libaribb24 --disable-libaribcaption --enable-asm --enable-libass --disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcodec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394 --disable-debug --enable-htmlpages --enable-libdrm --disable-libfdk-aac --disable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang --disable-libgme --enable-gmp --enable-gnutls --enable-version3 --disable-libgsm --enable-libharfbuzz --enable-iconv --disable-libilbc --disable-libjack --enable-libjxl --disable-libklvanc --disable-libkvazaar --disable-ladspa --enable-libmp3lame --enable-lcms2 --disable-liblensfun --disable-libbluray --enable-libplacebo --disable-librsvg --disable-librtmp --enable-libxml2 --disable-lv2 --disable-mbedtls --disable-libmfx --disable-libmodplug --disable-libmysofa --enable-network --disable-nonfree --enable-nvenc --disable-openal --disable-opencl --disable-opengl --disable-libopenh264 --disable-libopenjpeg --disable-libopenmpt --disable-openssl --disable-libopenvino --enable-optimizations --enable-libopus --disable-pocketsphinx --disable-libpulse --disable-librabbitmq --disable-librav1e --disable-librist --enable-runtime-cpudetect --disable-librubberband --disable-sdl2 --enable-libshaderc --disable-libsmbclient --disable-libsnappy --disable-sndio --disable-libsoxr --disable-libspeex --disable-libsrt --disable-libssh --enable-libsvtav1 --disable-libtensorflow --disable-libtesseract --disable-libtheora --disable-libtwolame --disable-libuavs3d --enable-libv4l2 --enable-vaapi --disable-vapoursynth --enable-vdpau --disable-libvidstab --enable-libvmaf --enable-libvorbis --disable-libvo-amrwbenc --disable-libvpl --enable-libvpx --enable-vulkan --enable-libwebp --enable-libx264 --enable-libx265 --disable-libxavs2 --enable-libxcb --disable-libxvid --disable-outdev=xv --disable-libzimg --disable-libzmq --disable-libzvbi
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Hyper fast Audio and Video encoder
 

gyfer

Dabbler
Joined
Feb 13, 2020
Messages
14
Many thanks for this help.

I have been able to run the script.

What bothers me here is whether this script will also lead to an uninstall of Jellyfin itself.

So do I have to perform this uninstallation?

In this case I would make a backup of my database first!

No, sorry , didn't think of jellyfin might have preinstalled.

try run pkg remove -f libtasn1 ( with a -f flag )
this will remove pkg ignoring dependencies.
 

CaspHop

Cadet
Joined
Sep 8, 2022
Messages
8
No, sorry , didn't think of jellyfin might have preinstalled.

try run pkg remove -f libtasn1 ( with a -f flag )
this will remove pkg ignoring dependencies.
I'm sorry I haven't replied for over a month.
I had other things on my mind.

This worked out perfectly and I am very grateful for your help!
 
Top