Jellyfin Forum
Direct playback / transcode with Intel ARC 310 and Ubuntu 22.04 - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Direct playback / transcode with Intel ARC 310 and Ubuntu 22.04 (/t-direct-playback-transcode-with-intel-arc-310-and-ubuntu-22-04)



Direct playback / transcode with Intel ARC 310 and Ubuntu 22.04 - fcmircea - 2024-06-07

Hello,
I am looking for some help figuring out why my driver installation on Ubuntu 22.04 doesn't work.

The system:
Ryzen 5 5600
AsRock B550 Phantom Gaming 4
AsRock Intel ARC 310 Low Profile.
Ubuntu 22.04 with 6.5 kernel and HWE

[*]I have followed the guide at https://dgpu-docs.intel.com/driver/client/overview.html

[*]Hopefully I've attached the logs as well, if note here's some transcripts:

[*]
Code:
[2024-06-07 08:48:43.786 +03:00] [INF] Running startup tasks
[2024-06-07 08:48:43.798 +03:00] [INF] Watching directory "/mnt/storage/movies"
[2024-06-07 08:48:43.799 +03:00] [INF] Daily trigger for "Generate Trickplay Images" set to fire at 2024-06-08 03:00:00.000 +03:00, which is 18:11:16.2010254 from now.
[2024-06-07 08:48:43.802 +03:00] [INF] Daily trigger for "Extract Chapter Images" set to fire at 2024-06-08 02:00:00.000 +03:00, which is 17:11:16.1976346 from now.
[2024-06-07 08:48:43.829 +03:00] [INF] Watching directory "/mnt/storage/series"
[2024-06-07 08:48:43.920 +03:00] [INF] Found ffmpeg version "6.0.1"
[2024-06-07 08:48:43.977 +03:00] [INF] Available "decoders": ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "dca", "flac", "mp3", "truehd"]
[2024-06-07 08:48:43.989 +03:00] [INF] Available "encoders": ["libsvtav1", "av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi", "libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mjpeg_qsv", "mjpeg_vaapi", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
[2024-06-07 08:48:44.004 +03:00] [INF] Available filters: ["deinterlace_qsv", "deinterlace_vaapi", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "scale_vulkan", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"]
[2024-06-07 08:48:44.072 +03:00] [INF] Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan"]
[2024-06-07 08:48:44.176 +03:00] [INF] FFmpeg: "/usr/lib/jellyfin-ffmpeg/ffmpeg"
[2024-06-07 08:48:44.177 +03:00] [INF] ServerId: "e370438a5cc5454eba203bd42bc9d75b"
[2024-06-07 08:48:44.177 +03:00] [INF] Core startup complete
[2024-06-07 08:48:44.177 +03:00] [INF] Startup complete 0:00:06.9164692
[2024-06-07 08:48:46.815 +03:00] [INF] "Clean up collections and playlists" Completed after 0 minute(s) and 0 seconds
[2024-06-07 08:48:47.592 +03:00] [INF] "Update Plugins" Completed after 0 minute(s) and 0 seconds
[2024-06-07 08:48:59.444 +03:00] [INF] Authentication request for "fcmircea" has succeeded.
[2024-06-07 08:48:59.446 +03:00] [INF] Current/Max sessions for user "fcmircea": 0/0
[2024-06-07 08:48:59.477 +03:00] [INF] Creating new access token for user 9849dd5d-df24-4979-a8cc-ae569a093ca9
[2024-06-07 08:48:59.661 +03:00] [INF] WS "::ffff:192.168.100.9" request
[2024-06-07 08:49:08.596 +03:00] [INF] User policy for "fcmircea". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-06-07 08:49:09.080 +03:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-06-07 08:49:09.099 +03:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -noautorotate -i file:\"/mnt/storage/movies/Dune Part Two (2024)/Dune.Part.Two.2024.2160p.AMZN.WEB-DL.DDP5.1.Atmos.H.265-FLUX[TGx].mkv\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 26054610 -maxrate 26054610 -bufsize 52109220 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=format=yuv420p\" -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 fmp4 -hls_fmp4_init_filename \"022d23f905bb8e81de15b1a0fb741bcd-1.mp4\" -start_number 0 -hls_segment_filename \"/var/lib/jellyfin/transcodes/022d23f905bb8e81de15b1a0fb741bcd%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/lib/jellyfin/transcodes/022d23f905bb8e81de15b1a0fb741bcd.m3u8\""
[2024-06-07 08:49:09.116 +03:00] [ERR] FFmpeg exited with code 1
[2024-06-07 08:49:09.219 +03:00] [ERR] Error processing request. URL "GET" "/videos/357f88ca-8856-365c-25f4-a19c75530be9/hls1/main/-1.mp4".
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
  at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
  at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId)
  at Jellyfin.Api.Controllers.DynamicHlsController.GetHlsVideoSegment(Guid itemId, String playlistId, Int32 segmentId, String container, Int64 runtimeTicks, Int64 actualSegmentLengthTicks, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions)
  at lambda_method1216(Closure, Object)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
  at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
  at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
  at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
  at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
  at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
  at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
  at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
  at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
  at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
  at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
  at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
  at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
  at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
  at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
  at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[2024-06-07 08:49:09.333 +03:00] [INF] User policy for "fcmircea". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-06-07 08:49:09.345 +03:00] [INF] Deleting partial stream file(s) "/var/lib/jellyfin/transcodes/022d23f905bb8e81de15b1a0fb741bcd.m3u8"
[2024-06-07 08:49:09.448 +03:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-06-07 08:49:09.448 +03:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -noautorotate -i file:\"/mnt/storage/movies/Dune Part Two (2024)/Dune.Part.Two.2024.2160p.AMZN.WEB-DL.DDP5.1.Atmos.H.265-FLUX[TGx].mkv\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 26054610 -maxrate 26054610 -bufsize 52109220 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=format=yuv420p\" -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 fmp4 -hls_fmp4_init_filename \"838ae34c56376ff8f0b2b8503e3a1833-1.mp4\" -start_number 0 -hls_segment_filename \"/var/lib/jellyfin/transcodes/838ae34c56376ff8f0b2b8503e3a1833%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/lib/jellyfin/transcodes/838ae34c56376ff8f0b2b8503e3a1833.m3u8\""
[2024-06-07 08:49:09.464 +03:00] [ERR] FFmpeg exited with code 1
[2024-06-07 08:49:09.563 +03:00] [ERR] Error processing request. URL "GET" "/videos/357f88ca-8856-365c-25f4-a19c75530be9/hls1/main/-1.mp4".
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
  at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
  at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId)
  at Jellyfin.Api.Controllers.DynamicHlsController.GetHlsVideoSegment(Guid itemId, String playlistId, Int32 segmentId, String container, Int64 runtimeTicks, Int64 actualSegmentLengthTicks, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions)
  at lambda_method1216(Closure, Object)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)

However:
Code:
xpu-smi discover
y returns no devices

Code:
lsmod | grep i915
i915_spi              24576  0
mtd                  106496  6 cmdlinepart,i915_spi
i915                3444736  3
intel_vsec            20480  1 i915
i915_compat            24576  1 i915
i2c_algo_bit          16384  1 i915
drm_display_helper    241664  2 i915,i915_compat
drm_kms_helper        274432  2 drm_display_helper,i915
drm                  765952  4 drm_kms_helper,drm_display_helper,i915
video                  73728  1 i915

Code:
dmesg | grep i915
[  11.441161] i915_compat: loading out-of-tree module taints kernel.
[  11.441518] i915_compat: module verification failed: signature and/or required key missing - tainting kernel
[  11.634353] i915 0000:0b:00.0: [drm] GT count: 1, enabled: 1
[  11.635055] i915 0000:0b:00.0: vgaarb: deactivate vga console
[  11.635074] i915 0000:0b:00.0: [drm] Using Transparent Hugepages
[  11.635106] i915 0000:0b:00.0: [drm] Local memory IO size: 0x0000000100000000
[  11.635111] i915 0000:0b:00.0: [drm] Local memory available: 0x00000000fd000000
[  11.688768] i915 0000:0b:00.0: [drm] Finished loading DMC firmware i915/dg2_dmc_ver2_07.bin (v2.7)
[  11.707262] i915 0000:0b:00.0: [drm] GT0: GuC firmware i915/dg2_guc_70.19.2.bin version 70.19.2
[  11.707270] i915 0000:0b:00.0: [drm] GT0: HuC firmware i915/dg2_huc_7.10.14_gsc.bin version 7.10.14
[  11.787338] i915 0000:0b:00.0: [drm] GT0: GUC: submission disabled
[  11.787346] i915 0000:0b:00.0: [drm] GT0: GUC: SLPC disabled
[  11.823453] i915 0000:0b:00.0: GT0: local0 bcs'0.0 clear bandwidth:17601 MB/s
[  11.832861] i915 0000:0b:00.0: GT0: local0 bcs'0.0 swap bandwidth:2082 MB/s
[  11.834584] [drm] Initialized i915 1.6.0 20201103 for 0000:0b:00.0 on minor 0
[  14.530551] Creating 4 MTD partitions on "i915.spi.2816":
[  14.530555] 0x000000000000-0x000000001000 : "i915.spi.2816.DESCRIPTOR"
[  14.531967] 0x000000001000-0x0000005f0000 : "i915.spi.2816.GSC"
[  14.533588] 0x0000005f0000-0x0000007f0000 : "i915.spi.2816.OptionROM"
[  14.534810] 0x0000007f0000-0x000000800000 : "i915.spi.2816.DAM"
[  15.142729] i915 0000:0b:00.0: [drm] GT0: HuC: authenticated!
[  15.142736] mei_pxp i915.mei-gsc.2816-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:0b:00.0 (ops i915_pxp_tee_component_ops [i915])
[  15.169166] snd_hda_intel 0000:0c:00.0: bound 0000:0b:00.0 (ops i915_audio_component_bind_ops [i915])

Code:
hwinfo --display
22: PCI b00.0: 0300 VGA compatible controller (VGA)
  [Created at pci.386]
  Unique ID: IluS.6P79Dn_bi73
  Parent ID: h+kn.mr2N3fBJq5F
  SysFS ID: /devices/pci0000:00/0000:00:03.1/0000:09:00.0/0000:0a:01.0/0000:0b:00.0
  SysFS BusID: 0000:0b:00.0
  Hardware Class: graphics card
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x56a6
  SubVendor: pci 0x1849 "ASRock Incorporation"
  SubDevice: pci 0x6007
  Revision: 0x05
  Driver: "i915"
  Driver Modules: "i915"
  Memory Range: 0xfa000000-0xfaffffff (rw,non-prefetchable)
  Memory Range: 0x7e00000000-0x7effffffff (ro,non-prefetchable)
  Memory Range: 0xfb000000-0xfb1fffff (ro,non-prefetchable,disabled)
  IRQ: 178 (361 events)
  Module Alias: "pci:v00008086d000056A6sv00001849sd00006007bc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #10 (PCI bridge)


When I hit play, I get a
Code:
playback failed
message. Trying again says
Code:
PlaybackError.mediadecodeerror

I've also attached a couple of logs.

Please let me know how to approach it.


RE: Direct playback / transcode with Intel ARC 310 and Ubuntu 22.04 - TheDreadPirate - 2024-06-07

You have NVENC selected for hardware acceleration.

Code:
-init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda

You need to select Intel Quick Sync in Dashboard > Playback.