Hi there I’ve been attempting to get quick sync video to work on Jellyfin, to little success.I’ve taken a look around at what other people are doing, here are most sources I’ve taken a look at:
- https://wiki.nixos.org/wiki/Jellyfin
- Accelerated Video Playback - Official NixOS Wiki
- Intel Graphics - Official NixOS Wiki
- https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel#linux-setups
- Trouble getting quicksync to work with jellyfin - #4 by haizaar
- Jellyfin QSV Config
Here is the most relevant parts of my configuration (Other parts are stuff to do with directory bind mounts and proxies)
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.jellyfin;
user = cfg.user;
in
{
config = lib.mkIf cfg.enable {
# Media group allows access to certain directories
users.users.${user} = {
extraGroups = [
"media"
"video"
"render"
];
};
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
intel-compute-runtime
];
};
environment.systemPackages = [
pkgs.jellyfin
pkgs.jellyfin-web
pkgs.jellyfin-ffmpeg
];
services.jellyfin = {
openFirewall = true;
};
};
}
This is the current state of my config from which there were many previous attempts, but this is what the Jellyfin service logs are telling me about this config when I attempt to force transcoding from 1080p to 720p.
[16:16:18] [ERR] [9] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 171
[16:16:18] [ERR] [9] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/efb056a8-b8d0-5239-38fb-bf4e54534dac/hls1/main/-1.mp4.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 171
at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workin>
at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId) in /build/source/Jellyfin.Api/Controllers/DynamicHlsController.cs:line 1529
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 deviceProfil>
at lambda_method5587(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) in /build/source/Jellyfin.Api/Middleware/ServerStartupMessageMiddleware.cs>
at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) in /build/source/Jellyfin.Api/Middleware/WebSocketHandlerMiddleware.cs:line 33
at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager) in /build/source/Jellyfin.Api/Middleware/IpBasedAccessValidationMiddleware.cs:line 41
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext) in /build/source/Jellyfin.Api/Middleware/QueryStringDecodingMiddleware.cs:line 36
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) in /build/source/Jellyfin.Api/Middleware/RobotsRedirectionMiddleware.cs:line 43
at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext) in /build/source/Jellyfin.Api/Middleware/LegacyEmbyRouteRewriteMiddleware.cs:line 51
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) in /build/source/Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs:line 66
at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context) in /build/source/Jellyfin.Api/Middleware/ExceptionMiddleware.cs:line 55
At this point I think I’m starting to loose my marbles. As the title would suggest this is for a system that has a 9700k. Where am I going wrong?