Yesterday, 01:56 AM
I have an Intel Arc A310 running in a jellyfin docker on a virtualized Ubuntu 24.04 VM hosted by proxmox.
Encoding and decoding works on some files. I can see a new PID formed in
File 1 (jellyfin uses HW acceleration on this one):
ffmpeg call for file 1:
File 2 (jellyfin does not invoke HW acceleration):
ffmpeg call for file 2:
Any idea why jellyfin uses HW acceleration for the first file, but not the second one?
HW config:
Encoding and decoding works on some files. I can see a new PID formed in
intel_gpu_top
, and I see a transcode log. But for very similar looking files, no encoding appears to be happening. Looking at the underlying ffmpeg calls, jellyfin is not passing init_hw_device
options. The files appear to fall into the encoding and decoding capabilities of the A310. But I am a newbie when it comes to video codecs...File 1 (jellyfin uses HW acceleration on this one):
Quote:Title: 1080p H264 SDR
Codec: H264
AVC: Yes
Profile: High
Level: 40
Resolution: 1920x1080
Aspect ratio: 16:9
Anamorphic: No
Interlaced: No
Framerate: 23.976025
Bitrate: 14469 kbps
Bit depth: 8 bit
Video range: SDR
Video range type: SDR
Color space: bt709
Color transfer: bt709
Color primaries: bt709
Pixel format: yuv420p
Ref frames: 1
NAL: 4
ffmpeg call for file 1:
Code:
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska -init_hw_device vaapi=va:/dev/dri/renderD128,driver=iHD -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -canvas_size 1920x1080 -i file:"<redacted>" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:0 -codec:v:0 av1_vaapi -rc_mode VBR -b:v 14469456 -maxrate 14469456 -bufsize 28938912 -profile:v:0 main -level 15 -force_key_frames:0 "expr:gte(t,n_forced*3)" -filter_complex "[0:2]scale,scale=1920:1080:fast_bilinear,format=bgra,hwupload=derive_device=vaapi[sub];[0:0]setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24[main];[main][sub]overlay_vaapi=eof_action=pass:repeatlast=0:w=1920:h=1080" -start_at_zero -codec:a:0 libfdk_aac -ac 2 -vbr:a 5 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "3297079bd018baf24b5e85cc3f595d3e-1.mp4" -start_number 495 -hls_segment_filename "/config/cache/transcodes/3297079bd018baf24b5e85cc3f595d3e%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/3297079bd018baf24b5e85cc3f595d3e.m3u8"
File 2 (jellyfin does not invoke HW acceleration):
Quote:Title: 1080p H264 SDR
Codec: H264
AVC: Yes
Profile: High
Level: 41
Resolution: 1920x804
Aspect ratio: 2.40:1
Anamorphic: No
Interlaced: No
Framerate: 23.976025
Bitrate: 16247 kbps
Bit depth: 8 bit
Video range: SDR
Video range type: SDR
Color space: bt709
Pixel format: yuv420p
Ref frames: 1
NAL: 4
ffmpeg call for file 2:
Code:
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts -f matroska -i file:"<redacted>" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 libfdk_aac -ac 2 -vbr:a 5 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "77ae589cc218c04ab40a53386e341ef0-1.mp4" -start_number 0 -hls_segment_filename "/config/cache/transcodes/77ae589cc218c04ab40a53386e341ef0%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/77ae589cc218c04ab40a53386e341ef0.m3u8"
Any idea why jellyfin uses HW acceleration for the first file, but not the second one?
HW config: