Transcoding with Intel Arc A750 Not Working - jos64 - 2025-06-06
Hello all,
I am currently in the process of re-building my Jellyfin server.
Originally I was running a Debian 12 virtual machine with Jellyfin installed, passing through an Intel Arc A750 via a VMware host. Transcoding with this setup worked flawlessly.
Now, I am re-building Jellyfin using a Jellyfin portable setup along with jellyfin-ffmpeg on a Fedora 42 Server Edition virtual machine (Jellyfin version 10.10.7) on a Fedora 42 KVM/QEMU host, also passing through the same Intel Arc A750.
I've installed what I believe is required for this to work, but I just can't get it to. I've been at this for 1 week. I've even rebuilt the server to see if that would solve my issues, but it didn't.
I've installed the following packages on the system:
- intel-opencl
- libva
- libva-utils
- libva-intel-media-driver
- intel-gpu-tools
- intel-mediasdk
- intel-vpl-gpu-rt
- intel-compute-runtime
My Transcoding settings are as follows:
- Hardware acceleration: Intel QuickSync (QSV)
- QSV Device: /dev/dri/renderD129
- Enable hardware decoding for: H264, HEVC, MPEG2, VP9, AV1, HEVC 10bit, V9 10bit
- Prefer OS native DXVA or VA-API hardware decoders [ON]
- Enable hardware encoding [ON]
- Enable Intel Low-Power H.264 hardware encoder [ON]
- Enable Intel Low-Power HEVC hardware encoder [ON]
I hope someone can point me in the right direction. Below are a couple of log entries that stand out to me. Thank you for your time.
Below is the log entry for an attempt at playing a movie file (2160p DV/HDR H265), which shows that ffmpeg gets stuck:
Code: /opt/jellyfin/ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska -init_hw_device vaapi=va:/dev/dri/renderD129,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:"/mnt/mediastore/Movies/Movie 2160p HDR.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -low_power 1 -preset veryfast -b:v 5360000 -maxrate 5360000 -bufsize 10720000 -profile:v:0 high -level 51 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_vaapi=w=1920:h=814:extra_hw_frames=24,procamp_vaapi=b=16,tonemap_vaapi=format=nv12:p=bt709:t=bt709:m=bt709:extra_hw_frames=32,hwmap=derive_device=qsv,format=qsv" -codec:a:0 libfdk_aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/mnt/cache/transcodes/a604eaef2daa8c2d3f7228856c83da23%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/mnt/cache/transcodes/a604eaef2daa8c2d3f7228856c83da23.m3u8"
ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 15.1.0 (crosstool-NG 1.27.0.42_35c1e72)
configuration: --prefix=/ffbuild/prefix --pkg-config=pkg-config --pkg-config-flags=--static --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --extra-version=Jellyfin --extra-cflags= --extra-cxxflags= --extra-ldflags= --extra-ldexeflags=-pie --extra-libs=-ldl --enable-gpl --enable-version3 --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-libxcb --disable-xlib --enable-lto=auto --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-amf --enable-chromaprint --enable-libdav1d --enable-libfdk-aac --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpl --enable-libvpx --enable-libwebp --enable-libopenmpt --enable-libsrt --enable-libsvtav1 --enable-libdrm --enable-vaapi --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzvbi
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
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/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/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
If I try running that same ffmpeg command, it also gets stuck at Code: libva info: va_openDriver() returns 0
.
Trying to play a different movie (1080p HEVC SDR) doesn't get stuck but does fail:
Code: /opt/jellyfin/ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska -init_hw_device vaapi=va:/dev/dri/renderD129,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:"/mnt/mediastore/Movies/Movie 1080p SDR.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -low_power 1 -preset veryfast -b:v 5360000 -maxrate 5360000 -bufsize 10720000 -profile:v:0 high -level 51 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv" -codec:a:0 libfdk_aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/mnt/cache/transcodes/e77171f7cd70e0032a8389460172cb82%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/mnt/cache/transcodes/e77171f7cd70e0032a8389460172cb82.m3u8"
ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 15.1.0 (crosstool-NG 1.27.0.42_35c1e72)
configuration: --prefix=/ffbuild/prefix --pkg-config=pkg-config --pkg-config-flags=--static --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --extra-version=Jellyfin --extra-cflags= --extra-cxxflags= --extra-ldflags= --extra-ldexeflags=-pie --extra-libs=-ldl --enable-gpl --enable-version3 --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-libxcb --disable-xlib --enable-lto=auto --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-amf --enable-chromaprint --enable-libdav1d --enable-libfdk-aac --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpl --enable-libvpx --enable-libwebp --enable-libopenmpt --enable-libsrt --enable-libsvtav1 --enable-libdrm --enable-vaapi --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzvbi
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
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/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/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
Input #0, matroska,webm, from 'file:/mnt/mediastore/Movies/Movie 1080p SDR.mkv':
Metadata:
encoder : libebml v1.4.2 + libmatroska v1.6.4
Duration: 01:34:38.66, start: 0.000000, bitrate: 5809 kb/s
Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn (default) (original)
Metadata:
BPS : 5037361
DURATION : 01:34:37.375000000
NUMBER_OF_FRAMES: 136257
NUMBER_OF_BYTES : 3574873434
_STATISTICS_WRITING_APP: mkvmerge v70.0.0 ('Caught A Lite Sneeze') 64-bit
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
... this continues on for a while until the log ends with:
Code: Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_qsv))
Stream #0:1 -> #0:1 (eac3 (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[hevc @ 0x564dd2805f40] No support for codec hevc profile 2.
[hevc @ 0x564dd2805f40] Failed setup for format vaapi: hwaccel initialisation returned error.
Impossible to convert between the formats supported by the filter 'Parsed_setparams_0' and the filter 'auto_scale_0'
[vf#0:0 @ 0x564dd283de40] Error reinitializing filters!
[vf#0:0 @ 0x564dd283de40] Task finished with error code: -38 (Function not implemented)
[vf#0:0 @ 0x564dd283de40] Terminating thread with return code -38 (Function not implemented)
[vost#0:0/h264_qsv @ 0x564dd2830fc0] Could not open encoder before EOF
[vost#0:0/h264_qsv @ 0x564dd2830fc0] Task finished with error code: -22 (Invalid argument)
[vost#0:0/h264_qsv @ 0x564dd2830fc0] Terminating thread with return code -22 (Invalid argument)
[out#0/hls @ 0x564dd2807880] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
Conversion failed!
RE: Transcoding with Intel Arc A750 Not Working - Re4mstr - 2025-06-06
I have the same issue.
Originally mentioned here:
https://forum.jellyfin.org/t-cannot-use-hardware-transcoding-help
I hope it's just a minor regression fixed in the nextversion jellyfin-ffmpeg or jellyfin....
RE: Transcoding with Intel Arc A750 Not Working - nyanmisaka - 2025-06-06
This error has nothing to do with jellyfin-ffmpeg or jellyfin. It is a kernel or firmware configuration issue on your side.
There are instructions in the documentation to tell you how to check.
https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel/#arc-gpu-support
RE: Transcoding with Intel Arc A750 Not Working - jos64 - 2025-06-06
Hi, I didn't say that it had anything to do with jellyfin or jellyfin-ffmpeg. I think it is a driver issue or Linux kernel issue, but looking for advice or others who may have the same problem.
As for @Re4mstr, I doubt that this is caused by a Jellyfin regression.
For me, I have read that documentation front-to-back tens of times already.
Here is the output for checking the supported QSV/VA-API codecs: Code: vainfo --display drm --device /dev/dri/renderD129
Code: Trying display: drm
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.1.4 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSliceLP
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointEncSliceLP
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointEncSliceLP
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointEncSliceLP
VAProfileAV1Profile0 : VAEntrypointEncSliceLP
And when checking the OpenCL Runtime status (which freezes ffmpeg just like when Jellyfin tries to transcode a file): Code: /opt/jellyfin/ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD129 -init_hw_device opencl@va
Code: ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 15.1.0 (crosstool-NG 1.27.0.42_35c1e72)
configuration: --prefix=/ffbuild/prefix --pkg-config=pkg-config --pkg-config-flags=--static --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --extra-version=Jellyfin --extra-cflags= --extra-cxxflags= --extra-ldflags= --extra-ldexeflags=-pie --extra-libs=-ldl --enable-gpl --enable-version3 --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-libxcb --disable-xlib --enable-lto=auto --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-amf --enable-chromaprint --enable-libdav1d --enable-libfdk-aac --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpl --enable-libvpx --enable-libwebp --enable-libopenmpt --enable-libsrt --enable-libsvtav1 --enable-libdrm --enable-vaapi --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzvbi
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 @ 0x55a82fc3f6c0] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x55a82fc3f6c0] libva: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
[AVHWDeviceContext @ 0x55a82fc3f6c0] libva: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
[AVHWDeviceContext @ 0x55a82fc3f6c0] libva: Trying to open /usr/lib64/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x55a82fc3f6c0] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x55a82fc3f6c0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x55a82fc3f6c0] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x55a82fc3f6c0] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 25.1.4 ().
[AVHWDeviceContext @ 0x55a82fc3f6c0] Driver not found in known nonstandard list, using standard behaviour.
RE: Transcoding with Intel Arc A750 Not Working - nyanmisaka - 2025-06-06
If it's a kernel/firmware issue, using sudo dmesg | grep i915 will usually give you some clues.
RE: Transcoding with Intel Arc A750 Not Working - jos64 - 2025-06-06
I'm not in front of it right now to provide the output of that command, but I have and there were no errors. The messages there all seem OK and that the driver is being loaded correctly
RE: Transcoding with Intel Arc A750 Not Working - jos64 - 2025-06-06
What I find interesting is that the documentation states that this card (Arc A750/DG2) should support the Xe driver. But when I attempted to blacklist the i915 to see what would happen, I got this message in the system logs:
Code: [ 1.348108] xe 0000:0b:00.0: Your graphics device 56a1 is not officially supported
by xe driver in this kernel version. To force Xe probe,
use xe.force_probe='56a1' and i915.force_probe='!56a1'
Adding Code: xe.force_probe='56a1'
to my Grub config softlocks the system when the Xe graphics driver loads in, as I would expect.
Fedora 42 is on Linux kernel 6.14.9-300, which is certainly new enough to have really recent drivers.
Code: Here is the output to dmesg | grep i915
Code: [ 5.526950] i915 0000:0b:00.0: [drm] Found dg2/g10 (device ID 56a1) discrete display version 13.00 stepping C0
[ 5.527640] i915 0000:0b:00.0: [drm] VT-d active for gfx access
[ 5.541484] i915 0000:0b:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
[ 5.549818] i915 0000:0b:00.0: [drm] Finished loading DMC firmware i915/dg2_dmc_ver2_08.bin (v2.8)
[ 5.568466] i915 0000:0b:00.0: [drm] GT0: GuC firmware i915/dg2_guc_70.bin version 70.36.0
[ 5.568468] i915 0000:0b:00.0: [drm] GT0: HuC firmware i915/dg2_huc_gsc.bin version 7.10.16
[ 5.580523] i915 0000:0b:00.0: [drm] GT0: GUC: submission enabled
[ 5.580525] i915 0000:0b:00.0: [drm] GT0: GUC: SLPC enabled
[ 5.580765] i915 0000:0b:00.0: [drm] GT0: GUC: RC enabled
[ 5.590478] [drm] Initialized i915 1.6.0 for 0000:0b:00.0 on minor 1
[ 5.625866] i915 0000:0b:00.0: [drm] Cannot find any crtc or sizes
[ 5.660872] i915 0000:0b:00.0: [drm] Cannot find any crtc or sizes
[ 5.730866] i915 0000:0b:00.0: [drm] Cannot find any crtc or sizes
[ 6.261752] i915 0000:0b:00.0: [drm] GT0: HuC: authenticated for all workloads
[ 6.261756] mei_pxp i915.mei-gsc.2816-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:0b:00.0 (ops i915_pxp_tee_component_ops [i915])
RE: Transcoding with Intel Arc A750 Not Working - jos64 - 2025-06-09
I haven't made any headway with this. I am wondering if anyone has any ideas? Something simple I might be missing?
|