Skip to content

Immich hardware acceleration (QuickSync) not working? #5557

@tremor021

Description

@tremor021

Discussed in #5550

Originally posted by mammuth June 29, 2025
Hi,

I stumble upon the Failed to open /dev/dri/renderD128 as DRM device node. in immich when trying to use HW acceleration for video transcoding:

[Nest] 95412  - 06/29/2025, 1:09:39 PM     LOG [Microservices:MediaService] Transcoding video c31b2e04-76a7-45af-aaad-e341d0a17f2f with QSV-accelerated encoding and software decoding
[Nest] 95412  - 06/29/2025, 1:09:40 PM   ERROR [Microservices:MediaRepository] ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14+deb12u1)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --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. 39.100 / 59. 39.100
  libavcodec     61. 19.101 / 61. 19.101
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample   5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
[AVHWDeviceContext @ 0x5b5dff05fd40] Failed to open /dev/dri/renderD128 as DRM device node.
[AVHWDeviceContext @ 0x5b5dff05fd40] No VA display found for device /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'qsv=hw,child_device=/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument

[Nest] 95412  - 06/29/2025, 1:09:40 PM   ERROR [Microservices:MediaService] Error occurred during transcoding: ffmpeg exited with code 234: Device creation failed: -22.
Failed to set value 'qsv=hw,child_device=/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument

[Nest] 95412  - 06/29/2025, 1:09:40 PM   ERROR [Microservices:MediaService] Retrying with QSV acceleration disabled

The immich instance is freshly installed via the helper script. I did not install OpenVINO. My CPU is an i5-8500T with iGPU that should support QuickSync, afaik.

I do see the devices being created and passed through:

image
root@immich:/opt/immich/upload# ls -l /dev/dri
total 0
crw-rw---- 1 root video  226,   1 Jun 29 00:46 card1
crw-rw---- 1 root render 226, 128 Jun 29 00:46 renderD128

Am I misunderstanding the setup or is HW acceleration not supposed to work like this without further configuration? 🤔

The processes seem to run as the user immich who doesn't seem to be part of the groups video and render - is that the issue?

$ groups immich
immich : immich
```</div>

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions