[SOLVED] Hardware decoding > nvidia - intel conflict - JohnDoeSama - 2025-01-11
Hello everyone,
I'm completely stuck to activate hardware decoding on my Jellyfin installation and I need your help!
Indeed, I realized that my graphics card does not support NVENC, so I wanted to use the integrated gpu with VAAPI instead but following the installation (https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-with-linux-virtualization) I have error messages with these commands and I think there's a conflict between my nvidia and intel drivers. :
Code: johndoesama@johndoesama-X555LN:~$ docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
Trying display: drm
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/nvidia_drv_video.so
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva info: Trying to open /usr/local/lib/dri/nvidia_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Code: johndoesama@johndoesama-X555LN:~$ docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
[AVHWDeviceContext @ 0x556fb1022640] Trying to use DRM render node for device 0.
[AVHWDeviceContext @ 0x556fb1022640] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x556fb1022640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/nvidia_drv_video.so
[AVHWDeviceContext @ 0x556fb1022640] libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
[AVHWDeviceContext @ 0x556fb1022640] libva: Trying to open /usr/lib/dri/nvidia_drv_video.so
[AVHWDeviceContext @ 0x556fb1022640] libva: Trying to open /usr/local/lib/dri/nvidia_drv_video.so
[AVHWDeviceContext @ 0x556fb1022640] libva: va_openDriver() returns -1
[AVHWDeviceContext @ 0x556fb1022640] 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
My configuration:
- OS host : Linux Mint 21.3 Cinnamon
- CPU : Intel© Core™ i5-4210U CPU @ 1.70GHz × 2
- GPU 1: Intel Corporation Haswell-ULT Integrated Graphics Controller
- GPU 2: Nvidia 840m
- Jellyfin installation: docker
My jellyfin service in my compose file :
Code: jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
ports:
- "8096:8096"
- "1900:1900/udp"
- "7359:7359/udp"
environment:
- PUID=1005
- PGID=1007
volumes:
- jellyfin-config:/config
- jellyfin-cache:/cache
- my-data:/media
networks:
my-network:
restart: unless-stopped
group_add:
- "110"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
and here are some useful commands
Code: johndoesama@johndoesama-X555LN:~$ getent group render | cut -d: -f3
110
Code: johndoesama@johndoesama-X555LN:~$ lspci -nn | grep -Ei "3d|display|vga"
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 0b)
04:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 840M] [10de:1341] (rev a2)
Code: johndoesama@johndoesama-X555LN:~$ vainfo
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Code: johndoesama@johndoesama-X555LN:~$ nvidia-smi
Sat Jan 11 19:02:20 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce 840M Off | 00000000:04:00.0 Off | N/A |
| N/A 41C P0 N/A / 19W | 604MiB / 2048MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1049 G /usr/lib/xorg/Xorg 238MiB |
| 0 N/A N/A 6643 G cinnamon 69MiB |
| 0 N/A N/A 11407 G /usr/lib/firefox/firefox 166MiB |
| 0 N/A N/A 93711 G /usr/lib/thunderbird/thunderbird 122MiB |
+---------------------------------------------------------------------------------------+
Thank you in advance for your help
RE: Hardware decoding > nvidia - intel conflict - TheDreadPirate - 2025-01-12
On the host, are there more than one render device in /dev/dri?
RE: Hardware decoding > nvidia - intel conflict - JohnDoeSama - 2025-01-13
Thanks for your feedback.
Indeed I had two files in this directory. So I modified my compose with
Code: devices:
- /dev/dri/renderD129:/dev/dri/renderD129
The first command to check Check the QSV and VA-API codecs is now ok but I have an error for the second one on penCL runtime status...
[AVHWDeviceContext @ 0x5623012f3640] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
Any leads? I admit I'm new to linux
Code: johndoesama@johndoesama-X555LN:~$ docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
[AVHWDeviceContext @ 0x5623012f3640] No render device /dev/dri/renderD128, try next device for DRM render node.
[AVHWDeviceContext @ 0x5623012f3640] Trying to use DRM render node for device 1.
[AVHWDeviceContext @ 0x5623012f3640] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x5623012f3640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x5623012f3640] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x5623012f3640] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
[AVHWDeviceContext @ 0x5623012f3640] libva: va_openDriver() returns 1
[AVHWDeviceContext @ 0x5623012f3640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
[AVHWDeviceContext @ 0x5623012f3640] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x5623012f3640] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5623012f3640] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x5623012f3640] VAAPI driver: Intel i965 driver for Intel(R) Haswell Mobile - 2.4.0.pre1 ().
[AVHWDeviceContext @ 0x5623012f3640] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x56230132f380] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl@va' for option 'init_hw_device': No such device
Error parsing global options: No such device
RE: Hardware decoding > nvidia - intel conflict - TheDreadPirate - 2025-01-13
OpenCL is used for tone mapping, but your iGPU needs to support hardware accelerated decoding of HEVC 10-bit to make use of OpenCL. Which it doesn't.
You can ignore the openCL issues. Your Intel iGPU doesn't have any useful openCL capability.
RE: Hardware decoding > nvidia - intel conflict - JohnDoeSama - 2025-01-13
Well, everything seems ok now! Thanks a lot for the help
|