Hello everyone,
I have a question, is there a method to change the jellyfin-ffmpeg7 package to use version 5?
I’m running the container on Debian with openmediavault6 so it’s the bullseye (11) version.
And I’m using a Nvidia GPU (1050Ti) with driver 470.256.02 (the latest available for v11).
However, from ffmpeg6 onwards, the use of more recent drivers is mandatory in order to have NVENC 12. (my error is: Driver does not support the required nvenc API version. Required: 12.0 Found: 11.1
)
The solutions is to pass to Debian bookworm (12) which has a more recent driver that supports NVENC 12 (driver v535.183.01). Unfortunately, I can’t upgrade Openmediavault to version 7 at the moment because I’m using packages that aren’t yet compatible.
So I’m wondering, is there any way to select the ffmpeg version?
If not, what do you advise me to do?
(Also, I don’t know what you think, but is it feasible to add this option as a parameter?)
1 Like
Hi,
I was also searching for a solution. I have a GTX 760 with driver 470.256.02.
Finally found a pretty straight forward solution to build ffmpeg for jellyfin with the correct nvenc API version. This also means you don’t have to fully downgrade to ffmpeg5 and still be able to use ffmpeg7.
The steps I followed are:
-
git clone https://github.com/jellyfin/jellyfin-ffmpeg.git
-
Edit the docker-build.sh
file with the nv-codec-headers you want to use. You can find the one that supports your driver version in the readme on the github https://github.com/FFmpeg/nv-codec-headers. For me and you this is the version with tag n11.1.5.3.
The line you need to edit is under # FFNVCODEC
.
Change git clone -b n12.0.16.1 --depth=1 https://github.com/FFmpeg/nv-codec-headers.git
to
git clone -b n11.1.5.3 --depth=1 https://github.com/FFmpeg/nv-codec-headers.git
-
Execute the build command to build ffmpeg with docker. I executed the following command ./build noble amd64
. This will create a deb package in ../bin/
.
On my machine this took more then an hour. I also had to restart the build once because I only had 20GB of space left on my root LVM and had to expand it. So make sure you have enough free space.
-
I am still figuring out how I can easily install this package when I start the container. But for now I just use docker cp
to copy the deb package in the container. And then install it with dpkg -i <package name>
.
So yeah this last step is not permanent. When I stop my container with docker compose down
I have to do step 4 again. I am still trying to figure that part out. There is probably also an easy solution for that. But I am still learning and figuring things out about docker.
To automate the last step I just added a volume to my docker image that contains the deb package. And then I used a custom script to install the package with the dpkg -i
command. https://docs.linuxserver.io/general/container-customization/#custom-scripts
Hey,
I’m having a hard time on step 3 here. In WSL I have the repo cloned and I have WSL and Docker configured (I can run docker -v in WSL). When I run ./build noble amd64
it seems like it’s building just fine but I don’t have a ../bin/
that I can find.
Thanks!
If the build was successful it should create a bin folder in the parent directory. I quickly read the build script and you could also pas a third parameter to specify a path.