| 
 Hardware Transcoding Issue Arc A310 - myradishes -  2024-10-04
 
 I'm having trouble playing a certain file on a roku device which I believe is running into a failure due to a transcoding problem. I believe I have transcoding setup correctly for my Arc A310 passed through to an lxc container in proxmox.
 
 Quote:root@mediaserver:~# /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va dev/dri/renderD129 -init_hw_device opencl@va ffmpeg version 6.0.1-Jellyfin Copyright © 2000-2023 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 --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-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      58.  2.100 / 58.  2.100
 libavcodec    60.  3.100 / 60.  3.100
 libavformat    60.  3.100 / 60.  3.100
 libavdevice    60.  1.100 / 60.  1.100
 libavfilter    9.  3.100 /  9.  3.100
 libswscale      7.  1.100 /  7.  1.100
 libswresample  4. 10.100 /  4. 10.100
 libpostproc    57.  1.100 / 57.  1.100
 [AVHWDeviceContext @ 0x5786159b6480] libva: VA-API version 1.22.0
 [AVHWDeviceContext @ 0x5786159b6480] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
 [AVHWDeviceContext @ 0x5786159b6480] libva: Found init function __vaDriverInit_1_22
 [AVHWDeviceContext @ 0x5786159b6480] libva: va_openDriver() returns 0
 [AVHWDeviceContext @ 0x5786159b6480] Initialised VAAPI connection: version 1.22
 [AVHWDeviceContext @ 0x5786159b6480] VAAPI driver: Intel iHD driver for Intel® Gen Graphics - 24.2.5 (12561f6).
 [AVHWDeviceContext @ 0x5786159b6480] Driver not found in known nonstandard list, using standard behaviour.
 [AVHWDeviceContext @ 0x5786159e7ec0] 0.0: Intel® OpenCL Graphics / Intel® Arc A310 LP Graphics
 [AVHWDeviceContext @ 0x5786159e7ec0] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
 [AVHWDeviceContext @ 0x5786159e7ec0] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
 [AVHWDeviceContext @ 0x5786159e7ec0] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).
 Hyper fast Audio and Video encoder
 
 Quote:root@mediaserver:~# ls -l /dev/dri/total 0
 drwxr-xr-x 2 root    root        120 Oct  3 12:56 by-path
 crw-rw---- 1 root    video  226,  0 Oct  2 00:51 card0
 crw-rw---- 1 root    video  226,  1 Oct  3 12:56 card1
 crw-rw---- 1 1000000 100106 226, 129 Oct  2 00:51 renderD128
 crw-rw---- 1 1000000 100106 226, 129 Oct  2 00:51 renderD129
 
 Quote:root@mediaserver:~# grep jelly /etc/groupvideo:x:44:jellyfin
 sgx:x:104:jellyfin
 render:x:106:jellyfin
 jellyfin:x:112:
 renderD128 has been configured to point at renderD129 in case it defaults to trying to use 128. Specifying 128 in the previous ffpmeg command yields the same output noting the A310 card.
 
 
 Quote:lxc.cgroup2.devices.allow: c 226:128 rwmlxc.cgroup2.devices.allow: c 226:129 rwm
 lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
 lxc.mount.entry: /dev/dri/renderD129 dev/dri/renderD128 none bind,optional,create=file
 lxc.hook.pre-start: sh -c "chown 1000000:100106 /dev/dri/renderD128"
 lxc.mount.entry: /dev/dri/renderD129 dev/dri/renderD129 none bind,optional,create=file
 lxc.hook.pre-start: sh -c "chown 1000000:100106 /dev/dri/renderD129"
 I've tried using QSV and VAAPI(tested while specifying 129 then 128 after that failed).
 
 Results of ffprobe.
 
 Quote:root@mediaserver: /mnt/mediafiles/Movies# /usr/lib/jellyfin-ffmpeg/ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 /mnt/mediafiles/Movies/poop.mkvh264
 From the logs.
 
 Quote:[2024-10-04 12:20:42.515 -07:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:00:03.000 -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/mnt/mediafiles/Movies/poop.mkv\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:0 -codec:v:0 hevc_qsv -tag:v:0 hvc1 -preset veryfast -b:v 4003390 -maxrate 4003390 -bufsize 8006780 -profile:v:0 main -g:v:0 72 -keyint_min:v:0 72 -filter_complex \"[0:2]scale=-1:1080:fast_bilinear,scale,crop,pad=max(1920\,iw):max(1080\,ih) ow-iw)/2  oh-ih)/2:black@0,crop=1920:1080,format=bgra,hwupload=derive_device=qsv:extra_hw_frames=64[sub];[0:0]setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv[main];[main][sub]overlay_qsv=eof_action=pass:repeatlast=0:w=1920:h=1080\" -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 1 -hls_segment_filename \"/mnt/mediafiles/jellyfin/transcode/b97ee18d5f158f34e7113dade2620775%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/mnt/mediafiles/jellyfin/transcode/b97ee18d5f158f34e7113dade2620775.m3u8\"" [2024-10-04 12:20:42.531 -07:00] [ERR] FFmpeg exited with code 1
 [2024-10-04 12:20:42.629 -07:00] [ERR] Error processing request. URL "GET" "/videos/8971a4cb-00a4-5324-3d23-5c25933f8985/hls1/main/1.ts".
 
 
 RE: Hardware Transcoding Issue Arc A310 - TheDreadPirate -  2024-10-04
 
 What kernel is the host running?
 
 
 Also, you should only be passing in ONE of the renderD devices.  Probably card1 and renderD129.  I'm assuming you have an AMD APU/7000 CPU or Intel CPU with an iGPU
 
 And you should setup and enable low power encoding since it is required for Intel Arc.  But we can get to that after you answer the question about which kernel your system is running.
 
 
 RE: Hardware Transcoding Issue Arc A310 - myradishes -  2024-10-04
 
 Yes, this is on a system with an Intel iGPU. Deleted entries in /dev/dri so only renderD129 is left, was expecting one of the cardNs to survive that haha. Transcoding options selected, decoding QSV h264 hevc mpeg2 vp9 av1 hevc-10b vp9-10b prefer os native, enable hardware decoding lowpowerh264 lowpowerhevc, allow encoding hevc allow av1, enable vpp tone mapping, enable tone mapping.
 
 
 Quote:root@mediaserver:~# ls -l /dev/dritotal 0
 drwxr-xr-x 2 root    root        120 Oct  3 12:56 by-path
 crw-rw---- 1 1000000 100106 226, 129 Oct  2 00:51 renderD129
 
 root@mediaserver:~# uname -a
 Linux mediaserver 6.8.4-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.4-2 (2024-04-10T17:36Z) x86_64 GNU/Linux
 No apparent change enabling the low power options.
 
 Quote:[2024-10-04 14:37:33.899 -07:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:00:03.000 -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/mnt/mediafiles/Movies/poop.mkv\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:0 -codec:v:0 hevc_vaapi -tag:v:0 hvc1 -rc_mode VBR -b:v 4003390 -maxrate 4003390 -bufsize 8006780 -profile:v:0 main -sei -a53_cc -force_key_frames:0 \"expr:gte(t,n_forced*3)\" -filter_complex \"[0:2]scale=-1:1080:fast_bilinear,scale,crop,pad=max(1920\,iw):max(1080\,ih) ow-iw)/2  oh-ih)/2:black@0,crop=1920:1080[sub];[0:0]setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwdownload,format=nv12[main];[main][sub]overlay=eof_action=pass:repeatlast=0,hwupload_vaapi\" -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 1 -hls_segment_filename \"/mnt/mediafiles/jellyfin/transcode/d93a2c9330aa081bed3acdcd02f09642%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/mnt/mediafiles/jellyfin/transcode/d93a2c9330aa081bed3acdcd02f09642.m3u8\"" [2024-10-04 14:37:33.935 -07:00] [ERR] FFmpeg exited with code 1
 
 
 RE: Hardware Transcoding Issue Arc A310 - myradishes -  2024-10-04
 
 Realized what I did wrong here, the guide I followed was for an unprivileged container but mine is privileged so I had the wrong uid/gid set. It's playing now and I see the A310 being used on the host node's intel_gpu_top. For the low power option you mentioned how can I verify that is being used properly after enabling low power h264/hevc hardware encoder?
 
 Also, it appears despite the tv/roku being turned off jellyfin is still transcoding the movie for some odd reason? Looks like it eventually killed the transcode at some point, it was going for maybe 5-10 minutes haha.
 
 
 
 |