2025-01-21, 06:21 AM
I've been trying to get hardware transcoding to work on my server using an Intel ARC A380 card.
I'm using Ubuntu 24.04, kernel 6.8.0-51.
Official Jellyfin Docker container.
When I run commands to test if transcoding will work, they seem to suggest it will.
Also, intel_gpu_top shows activity like its trying to transcode.
Here's the full FFmpeg logs.
VAAPI: https://pastebin.com/63L77PRa
QSV: https://pastebin.com/P1wvTVS8
dco exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device qsv=hw -init_hw_device qsv@hw
ffmpeg version 7.0.2-Jellyfin Copyright © 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 @ 0x5ddac6052a80] Trying to use DRM render node for device 0, with matching vendor id (0x8086).
[AVHWDeviceContext @ 0x5ddac6052a80] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x5ddac6052a80] libva: User requested driver 'iHD'
[AVHWDeviceContext @ 0x5ddac6052a80] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x5ddac6052a80] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x5ddac6052a80] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5ddac6052a80] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x5ddac6052a80] VAAPI driver: Intel iHD driver for Intel® Gen Graphics - 24.4.2 (b6b411f).
[AVHWDeviceContext @ 0x5ddac6052a80] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x5ddac6052640] Use Intel® oneVPL to create MFX session, API version is 2.13, the required implementation version is 1.3
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5ddac6052640] Initialize MFX session: implementation version is 2.13
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
dco exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=vadev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 7.0.2-Jellyfin Copyright © 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 @ 0x56c17dd22640] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x56c17dd22640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x56c17dd22640] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x56c17dd22640] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x56c17dd22640] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x56c17dd22640] VAAPI driver: Intel iHD driver for Intel® Gen Graphics - 24.4.2 (b6b411f).
[AVHWDeviceContext @ 0x56c17dd22640] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x56c17dd5e3c0] 0.0: Intel® OpenCL Graphics / Intel® Arc A380 Graphics
[AVHWDeviceContext @ 0x56c17dd5e3c0] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x56c17dd5e3c0] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x56c17dd5e3c0] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
I'm using Ubuntu 24.04, kernel 6.8.0-51.
Official Jellyfin Docker container.
When I run commands to test if transcoding will work, they seem to suggest it will.
Also, intel_gpu_top shows activity like its trying to transcode.
Here's the full FFmpeg logs.
VAAPI: https://pastebin.com/63L77PRa
QSV: https://pastebin.com/P1wvTVS8
dco exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device qsv=hw -init_hw_device qsv@hw
ffmpeg version 7.0.2-Jellyfin Copyright © 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 @ 0x5ddac6052a80] Trying to use DRM render node for device 0, with matching vendor id (0x8086).
[AVHWDeviceContext @ 0x5ddac6052a80] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x5ddac6052a80] libva: User requested driver 'iHD'
[AVHWDeviceContext @ 0x5ddac6052a80] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x5ddac6052a80] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x5ddac6052a80] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5ddac6052a80] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x5ddac6052a80] VAAPI driver: Intel iHD driver for Intel® Gen Graphics - 24.4.2 (b6b411f).
[AVHWDeviceContext @ 0x5ddac6052a80] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x5ddac6052640] Use Intel® oneVPL to create MFX session, API version is 2.13, the required implementation version is 1.3
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5ddac6052640] Initialize MFX session: implementation version is 2.13
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
dco exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=vadev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 7.0.2-Jellyfin Copyright © 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 @ 0x56c17dd22640] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x56c17dd22640] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x56c17dd22640] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x56c17dd22640] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x56c17dd22640] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x56c17dd22640] VAAPI driver: Intel iHD driver for Intel® Gen Graphics - 24.4.2 (b6b411f).
[AVHWDeviceContext @ 0x56c17dd22640] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x56c17dd5e3c0] 0.0: Intel® OpenCL Graphics / Intel® Arc A380 Graphics
[AVHWDeviceContext @ 0x56c17dd5e3c0] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x56c17dd5e3c0] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x56c17dd5e3c0] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'