Jellyfin Forum
[SOLVED] Hardware decoding > nvidia - intel conflict - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: [SOLVED] Hardware decoding > nvidia - intel conflict (/t-solved-hardware-decoding-nvidia-intel-conflict)



[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! Face-with-head-bandage

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 Speak-no-evil-monkey 

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