-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QSV Hardware Transcoding not working on Docker on 10.7.5 #5993
Comments
Same issue on Debian 11/Bullseye. I've tried upgrading the Intel driver packages to the latest version but that doesn't seem to help. |
I believe you are using jellyfin-ffmpeg v4.3.1-4 as bundled with Ubuntu image. |
So it's a dependency issue right? |
Nope, there is no dependency issue, you can just go to https://repo.jellyfin.org/releases/server/ubuntu/versions/jellyfin-ffmpeg/ and grab the DEB for your Ubuntu. |
That pretty much means that it's a dependency problem. |
I remember a couple days ago I had a glace from another issue, someone quoted that Jellyfin has released 4.3.2-1 for Ubuntu but for some reason they decided to move back, I can't find that issue now. But for Debian, a 10.7.5 installation will automatically bring me FFMPEG 4.3.2-1, so at the beginning I also couldn't believe that's the root cause of problem on Ubuntu. |
Oh I found it here: linuxserver/docker-jellyfin@ede49b2 |
Same issue here. So... why was it reverted to older version of FFMpeg? And how to fix it besides reverting to older Jellyfin version? :/ |
Same here |
Still an issue in Jellyfin Workaround (installing newer version of
|
I've solved by using the following command too, before QSV was broken |
QSV not working on clean jellyfin/jellyfin:latest docker container for a few months now. VAAPI works but not QSV. jellyfin:latest (debian buster) - jellyfin server Running this after updating the container to restore QSV functionality (also installs non-free driver).
|
On my Debian Buster I also use the intel-media-va-driver-non-free from
Bullseye repo (21.1) to make QSV working.
…On Sat, Jun 19, 2021, 9:35 PM imyuno ***@***.***> wrote:
QSV not working on clean jellyfin/jellyfin:latest docker container for a
few months now. VAAPI works but not QSV.
Manually downgrading to jellyfin-ffmpeg_4.3.1-3 fixes it but hopefully
this can be addressed in new releases of the container image given that the
issue seems to be depency related.
jellyfin:latest (debian buster) - jellyfin server 10.7.6 -
jellyfin-ffmpeg 4.3.2-1-buster - QSV NOT working
jellyfin:latest (debian buster) - jellyfin server 10.7.6 -
jellyfin-ffmpeg 4.3.1-3-buster (manual downgrade) - QSV WORKS
Running this after updating the container to restore QSV functionality
(also installs non-free driver).
docker exec -it jellyfin /bin/bash
echo 'deb http://deb.debian.org/debian buster non-free' >>
/etc/apt/sources.list \
&& apt -y update \
&& apt -y install wget intel-media-va-driver-non-free \
&& dpkg -P --force-depends jellyfin-ffmpeg \
&& wget
https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v4.3.1-3/jellyfin-ffmpeg_4.3.1-3-buster_amd64.deb
\
&& dpkg -i jellyfin-ffmpeg_4.3.1-3-buster_amd64.deb
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#5993 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFCR7WJG2EX7FMQAYZZRWHTTTSFK7ANCNFSM44G727CA>
.
|
@edwardwong80 thank you for the pointer, I managed to get QSV working with jellyfin 10.7.6 and jellyfin-ffmpeg 4.3.2-1 inside the docker container using the intel drivers from bullseye/testing! This avoids being stuck on jellyfin-ffmpeg 4.3.1 which might become an issue down the line. This is what I run inside jellyfin:latest container (can remove vainfo, useful for debugging): echo 'APT::Default-Release "stable";' > /etc/apt/apt.conf.d/99defaultrelease \ && echo 'deb http://deb.debian.org/debian testing main non-free' >> /etc/apt/sources.list \ && apt -y update \ && apt -y -t testing install intel-media-va-driver-non-free vainfo \ && rm /usr/local/lib/libigdgmm.so.11 The Logs with existing [AVHWDeviceContext @ 0x56405154fa80] libva: dlopen of /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so failed: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so: undefined symbol: _ZN6GmmLib16GmmClientContext25CreateCustomResInfoObjectEP32GMM_RESCREATE_CUSTOM_PARAMS__REC [AVHWDeviceContext @ 0x56405154fa80] Failed to initialise VAAPI connection: -1 (unknown libva error). Device creation failed: -5. vainfo libva info: VA-API version 1.10.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva error: dlopen of /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so failed: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so: undefined symbol: _ZN6GmmLib16GmmClientContext25CreateCustomResInfoObjectEP32GMM_RESCREATE_CUSTOM_PARAMS__REC libva info: va_openDriver() returns -1 After removing vainfo libva info: VA-API version 1.10.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_10 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.10 (libva 2.10.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.1.1 () Jellyfin QSV working on latest docker container! |
lol none of those commands work for me in docker + synology :( Anyone care to help out a newbie with this? |
@rightsaidfred99 You will need to give more information on the problem, what you tried and what didn't work. |
Oh, just the commands don't match what can be entered into the synology docker console. In the end I disabled hardware transcoding and I can now play all videos and everything transcodes faster than with qsv enabled so I really don't understand what's going on. |
Are you sure you are doing transcoding? And what's the resolution? Those Synology home use NAS has only a Celeron J series CPU, 1080p software transcoding should be OK (but using lots of CPU resources), but 4K is not quite possible, especially HEVC video type. For Synology NAS, I remember that the intel-media-driver-non-free version is quite new, the remaining is to update the FFMPEG inside docker to make it work. |
Yes, it's transcoding - it says so on an Android client where you tap the "i" icon and transcoding=true. I have no idea what's going on but 4K Videos and 1080p transcoding works without hardware acceleration with Jellyfin. At the moment, I suggest anyone else that runs into this, just keep it simple and disable HWT cause it'll still work until this bug is found. |
Can you capture the Jellyfin transcoding log, for both using/not using QSV? |
Sounds awesome, but I can't get this to work I'm afraid, generating the following error message:
🤦🏻♂️ I'm on Ubuntu (it's inside the linuxserver/jellyfin:latest container), that would be why it's not working, sorry for this. What would be the recommended steps for Ubuntu to ensure I'm best prepared for QSV support? It seems by the logs that the hevc_qsv is working and I can watch transcoded movies (on my iphone), but the CPU usage is like 400% (~80% total) on my 6500T Skylake CPU, is this right for 4K HEVC SDR content? |
That command won't work for you, it's for Debian, not for Ubuntu. For Ubuntu one you need to upgrade 2 things, one is FFMPEG, you can download the Focal-AMD64 here. And follow this guide from Intel to get latest intel-media-driver-non-free For your case, Skylake CPU has HEVC hardware acceleration support but 8-bit ONLY, 10-bit isn't supported, so it depends on your video source, but you should better have the transcoding log for better analysis, you can paste them to Ubuntu pastebin and link back here. |
See my comment from three weeks ago above. I use the Linuxserver Docker image and this works: Note: Have to do it manually after every update to release unfortunately. Until it actually gets fixed that is... |
I use this docker container now on my unraid https://hub.docker.com/r/ich777/jellyfin |
Thanks for the information and assistance. Thanks also for the heads up on the SkyLake capabilities, i don't see this being mentioned as often as it should... I use this resource to remind myself what my CPU is capable of - and ensure I set my jellyfin server playback hardware encoding/decoding settings accordingly: I applied Hukuma1's commands as above in the comment earlier and can confirm with Here is on of the transcode logs: And here are the two first transcode logs after playing another 4K HEVC HDR movie file: Is anything out of the ordinary and is it really normal with this high CPU usage (350% on my intel 6500t skylake quad-core cpu)? |
Looking over the second log you posted, it seems to be capped at 8mb/s for the re-encode/stream. Up that number dramatically (just set it to 100 if on LAN?) and see if that helps. It's probably trying to crunch it down too much and that puts too much stress. You can change playback rate using the settings cog wheel I believe. |
You must set kernel options to enable hardware acceleration on 11th Gen Elkhart Lake/Jasper Lake processors.
|
Probably that jellyfin thinks something is supported because of the version in the container, but the host then doesn't really. googling your error seems to suggest it'd indeed a version issue, see this for example. As for how to fix it, I don't know. I'd try to ensure the driver version matches on the host, and in the kernel, are the drivers mentioning kernel version compatibility maybe ? Maybe try using vaapi instead, that could be easier. |
enable guc,but no work.
|
this should be a separate problem. what's the environment? docker or host? |
do not use custom ffmpeg if you need hardware acceleration in Jellyfin 10.8. low-power encoder should also be enabled. |
archlinux host.
|
Guc in enabled. Which jellyfin are you running? Would you like to give it a try to |
try
Archlinux vainfo when enable guc
|
kernel 5.15 no work. kernel 5.16 fixed. |
Thank you @nyanmisaka. 4.4.1 works with 21.4.1+i643. Both docker and bare metal instances are functioning without fault. |
Hi. I'm also having the same problem as nzlov. I am running dockerised with the official jellyfin image and when i turn on intel quicksync I get |
Same here on #!/bin/bash
# Install debug tools
apt update
apt install -y wget gnupg vainfo gpg-agent
# Upgrade jellyfin-ffmpeg to latest version 4.4.1-4-bullseye (increases transcoding perfs a lot)
echo "deb http://http.us.debian.org/debian stable main contrib non-free" | tee -a /etc/apt/sources.list
apt update
apt install -y -u jellyfin-ffmpeg
# Install i965 driver (default gpu driver, uncomment if you have <9th gen CPU)
# apt install i965-va-driver-shaders
# Install iHD driver (iHD quicksync driver, better performance cf https://www.reddit.com/r/jellyfin/comments/r5pur8/best_transcoding_settings_for_synology_ds920/ only if you have a >9th gen CPU)
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | apt-key add -
echo 'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main' >> /etc/apt/sources.list
apt update
apt install -y intel-media-va-driver-non-free We should consider adding those steps in the Dockerfile. |
PR for dockerfile should probably go there jellyfin/jellyfin-metapackages. I am unsure if all usecases can fit in the same amd64 dockerfile though. |
The dockerfile changes shouldn't be needed on current master, please check and verify that it works for you. |
Intel QuickSync still does not work for me on ffmpeg version 5.0.1-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3 --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100
libpostproc 56. 3.100 / 56. 3.100
Device creation failed: -542398533.
Failed to set value 'vaapi=va:,driver=iHD,kernel_driver=i915' for option 'init_hw_device': Generic error in an external library
Error parsing global options: Generic error in an external library |
This is a configure issue, due to missing /dev/dri, the wrong group-add value or the privileged option is not checked on Synology NAS. All required Intel drivers have been shipped with jellyfin-ffmpeg5 deb packages. Please follow this instructions: |
Same issue as nzlov CPU, GPU: Intel N5095 Environment: PVE 7.2-7, LXC based on Debian 11, running docker nyanmisaka/jellyfin in LXC Same problem with kernel 5.15, and upgrading to 5.16 fixes |
|
Hello, |
@mich2k Take a look at https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux |
Describe the bug
When using docker on
10.7.5
(either Jellyfin image or LinuxServer one), hardware transcoding won't work with the following error :The same file (with the same configuration) works without issue on
10.7.2
.System (please complete the following information):
To Reproduce
Expected behavior
The hardware transcoding should work
Logs
FFmpeg error :
vainfo on host :
vainfo on docker container :
Additional context
Works perfectly when reverting to
10.7.2
The text was updated successfully, but these errors were encountered: