![]() |
Unable to setup HW acceleration on Celeron N4500 (Intel UHD 600) - 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: Unable to setup HW acceleration on Celeron N4500 (Intel UHD 600) (/t-unable-to-setup-hw-acceleration-on-celeron-n4500-intel-uhd-600) |
Unable to setup HW acceleration on Celeron N4500 (Intel UHD 600) - Nikojiro - 2025-07-29 Hi, I'm trying to set up hardware acceleration on a Chuwi Herobox pro 2021 (Celeron N4500, 8GB of RAM, Intel UHD 600). I'm running Ubuntu server and installed the native Jellyfin package (using the official install script), version 10.10.7. I followed the steps from the tutorial for Intel GPUs). Here's the output of a few commands: :~$ ls -l /dev/dri total 0 drwxr-xr-x 2 root root 80 Jul 29 11:33 by-path crw-rw---- 1 root video 226, 0 Jul 29 11:33 card0 crw-rw---- 1 root render 226, 128 Jul 29 11:33 renderD128 :~$ sudo vainfo error: XDG_RUNTIME_DIR is invalid or not set in the environment. error: can't connect to X server! libva info: VA-API version 1.20.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_20 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.20 (libva 2.12.0) vainfo: Driver version: Intel iHD driver for Intel® Gen Graphics - 24.1.0 () vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP I've tried using both VAAPI and Intel QSync to no avail. Playback fails with either error 234 or 218 respectively. Here's the log for a VAAPI playback attempt: [2025-07-29 11:51:10.107 +00:00] [INF] User policy for "admin". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2025-07-29 11:51:10.134 +00:00] [INF] Deleting partial stream file(s) "/var/cache/jellyfin/transcodes/d8b1546347956f9017b0f93d8d03dff9.m3u8" [2025-07-29 11:51:10.212 +00:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request [2025-07-29 11:51:10.213 +00:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -f avi -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/media/jellyfin/Animation/Avatar/The Legend of Korra [S01-S04][720p]/[AR] The Legend Of Korra Saison 1 Complete [720p S01 FULL]/Th e legend of Korra 1x01 Welcome in Republic City [720p Avatar Realms].mp4\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -rc_mode VBR -b:v 5994556 -maxrate 5994556 -bufsize 11989112 -profile:v:0 high -sei -a53_cc -force_key_frames:0 \"expr:gte(t,n_force d*3)\" -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24\" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -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 \"4f 612c27eadb28e1d8ed1aeeb00979ca-1.mp4\" -start_number 0 -hls_segment_filename \"/var/cache/jellyfin/transcodes/4f612c27eadb28e1d8ed1aeeb00979ca%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/cache/jellyfin/transcodes/4f612c27eadb28e1d8ed1aeeb00979ca.m3u8\"" [2025-07-29 11:51:10.778 +00:00] [ERR] FFmpeg exited with code 234 [2025-07-29 11:51:10.834 +00:00] [ERR] Error processing request. URL "GET" "/videos/a08071c0-e4ff-71d4-57aa-b61a473ccba1/hls1/main/-1.mp4". MediaBrowser.Common.FfmpegException: FFmpeg exited with code 234 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, Nullable1 allowVideoStreamCopy, Nullable 1 allowAudioStreamCopy, Nullable1 breakOnNonKeyFrames, Nullable 1 audioSampleRate, Nullable1 maxAudioBitDepth, Nullable 1 audioBitRate, Nullable 1 audioChannels, Nullable 1 maxAudioChannels, String profile, String level, Nullable1 framerate, Nullable 1 maxFramerate, Nullable1 copyTimestamps, Nullable 1 startTimeTicks, Nullable1 width, Nullable 1 height, Nullable1 maxWidth, Nullable 1 maxHeight, Nullable1 videoBitRate, Nullable 1 subtitleStreamIndex, Nullable 1 subtitleMethod, Nullable 1 maxRefFrames, Nullable1 maxVideoBitDepth, Nullable 1 requireAvc, Nullable1 deInterlace, Nullable 1 requireNonAnamorphic, Nullable1 transcodingMaxAudioChannels, Nullable 1 cpuCoreLimit, String liveStreamId, Nullable1 enableMpegtsM2TsMode, String videoCodec, String sub 1 audioStreamIndex, Nullable1 videoStreamIndex, Nullable 1 context, Dictionary2 streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) 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) [2025-07-29 11:51:11.139 +00:00] [INF] Deleting partial stream file(s) "/var/cache/jellyfin/transcodes/4f612c27eadb28e1d8ed1aeeb00979ca.m3u8" [2025-07-29 11:51:12.640 +00:00] [INF] Playback stopped reported by app "Jellyfin Web" "10.10.7" playing "The legend of Korra 1x01 Welcome in Republic City [720p Avatar Realms]". Stopped at "0" ms I have no idea what's wrong here, thanks for helping. RE: Unable to setup HW acceleration on Celeron N4500 (Intel UHD 600) - Nikojiro - 2025-07-29 Oh well, it seems I had not understood how transcoding works, and that my issue is on the client side. I've set up Jellyfin Media Player on my PCs and the Jellyfin app + MPV on my Android phone, everything is working now, including HEVC 10bit vids.Before that I was using the web player, beginner mistake... |