Hello everyone,
I am trying to get my new A380 working on jellyfin for transcoding. My setup is headless so I have no X server or wayland installed.
I am running debian 12 bookworm with backported ZFS and kernel:
Linux Kiruna 6.4.0-0.deb12.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.4.4-3~bpo12+1 (2023-08-08) x86_64 GNU/Linux
According to everything I found, there is no need for any extra drivers as Intel card drivers are baked into the kernel and functional on 6.2+
I have followed the documentation regarding intel GPUs and added both /dev/dri
and /dev/dri/renderD128
to my devices in jellyfin and restarted.
Executing vainfo in the container space returns this:
Trying display: drm
libva info: VA-API version 1.19.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
vainfo on the main device sudo vainfo --display drm --device /dev/dri/card0
returns the same thing even though this command should work on headless servers.
executing docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
for checking OpenCL gives this:
ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --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-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --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. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
[AVHWDeviceContext @ 0x55e4877d54c0] Trying to use DRM render node for device 0.
[AVHWDeviceContext @ 0x55e4877d54c0] libva: VA-API version 1.19.0
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Found init function __vaDriverInit_1_19
[AVHWDeviceContext @ 0x55e4877d54c0] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
[AVHWDeviceContext @ 0x55e4877d54c0] libva: va_openDriver() returns 1
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Found init function __vaDriverInit_1_19
[AVHWDeviceContext @ 0x55e4877d54c0] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so init failed
[AVHWDeviceContext @ 0x55e4877d54c0] libva: va_openDriver() returns -1
[AVHWDeviceContext @ 0x55e4877d54c0] Failed to initialise VAAPI connection: -1 (unknown libva error).
Device creation failed: -5.
Failed to set value 'vaapi=va' for option 'init_hw_device': Input/output error
Error parsing global options: Input/output error
I also have under environment this option:
- DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel
because I am using the Linuxserver.io version of jellyfin.
Starting a show with hardware encoding then enables (VAAPI or QSV) results in "This client isn't compatible with the media and the server isn't sending a compatible media format." so hardware encoding definitely isn't working.
Does anyone have any idea if this is because I don't have a display driver installed? According to FFMPEG it shouldn't need an X server environment
Solution 5 months later:
After a lot of debuging, giving up, and starting again recently. I noticed that intel GuC was loading on start but HuC was not. I ended up having to download the entire linux firmware git repo, extracting the i915 folder and dropping it in my /usr/lib/firmware/.
Now it works perfectly!
Sorry, but inflation is a not great reasoning.
Wages in a lot of the world (especially the US) have been completely left behind by inflation, so many people are paid very similarly to how they were paid in the 2000s. That is the entire driver behind the insane wealth inequality gap.
Video games are a luxury good, so if you up the price (especially for shitty cranked out AAA games with little replay value and dubious quality) then they will see profits actually fall because so many people will see those games as not worth it. Not to mention that orders of magnitude more people are just struggling to pay rent now with skyrocketing housing prices (corporations switching to housing for investments and buying up all property) and worsening working conditions.
The reason companies are switching to subscriptions and micro transactions en masse is because they just work, take minimal effort, and make massive profits. They are literally exploiting flaws in the human psyche.
According to blizzard, 1 single horse skin microtransaction in world of warcraft made more money than all of the sales from the entire game of StarCraft 2: wings of liberty.
Plus, let's say all of this was successful in switching the content of games to less exploitative means of earning profits. Do you think developers will be treated better? Do you think shareholders will forgo their worship of yearly increasing profits and treat employers fairly? More likely they would just increase the price and double dip by micro transactions, loot boxes, and battle passes for those precious profits.
I would love to go back to the better times of games also, but corporate greed prevents it at every turn.