2023-11-13, 10:32 PM
(This post was last modified: 2023-11-15, 08:53 PM by PapaTrotsky. Edited 1 time in total.)
Edit/Solution: I solved it!
Essentially what I had to do was modify my jellyfin container by: adding this line to my extra parameters under Advanced View
Extra Parameters: -e NVIDIA_DRIVER_CAPABILITIES=all -e NVIDIA_VISIBLE_DEVICES=all --gpus all
That's the exact line I used, I copy and pasted exactly that, obviously without the Extra Parameters part.
Than I created 2 variables in the container editor.
Variable 1:
Name: NVIDIA_VISIBLE_DEVICES
Key: NVIDIA_VISIBLE_DEVICES
value: all
Variable 2:
Name: NVIDIA_DRIVER_CAPABILITIES
Key: NVIDIA_DRIVER_CAPABILITIES
Value: all
Aside from this you need to make sure NVIDIA drivers and NVIDIA container toolkit is installed. On Unraid, you can install the "Nvidia Driver" app/plugin from the built-in apps installer, the author at time of writing is 'ich777'.
The container toolkit just works, I assume it comes with the drivers.
I also installed "GPU Statistics" I don't think it's necessary but it's nice to see how the GPU is performing.
After that I just setup the hardware transcoding on jellyfin and was good to go.
Original post:
Hello, I recently got into Jellyfin and after a few issues I have it working 90% of the way. I am able to stream my shows if I turn off hardware acceleration but when I set it to NVENC it stops loading and gives a Playback Error stating "This client is compatible with the media and the server isn't able to send a compatible media format."
I am running a jellyfin docker container off of my home server running unRaid. The server has a Ryzen 7 1700 and Geforce GTX 1050ti. I've tried following the jellyfin guide, the linuxserver.io guide, and the NVIDIA guide. The guides are all confusingly written, have steps out of order and all over the place and I've been working on this for 5 hours now and missed 2 classes so I'm finally asking for help. Incase it's relevant the show I'm testing with is a 'definitely legally acquired' copy of the first 13 seasons of Top Gear which aren't available on any streaming platform in my country. Jellyfin says the video is in 360p MPEG4 SDR which seems oddly low quality. The media files are MKV format and ~350 MB for an hour long episode.
This is what my log spits out every time I try to run the show with NVENC on. I added some information of my settings on Jellyfin after the log.
Enable hardware decoding for:
HEVC, VC1, HEVC 10bit, VP9 10bit
Enable enhanced NVDEC decoder (on)
Hardware encoding options:
Enable hardware encoding (on)
Allow encoding in HEVC format (on)
Enable Tone mapping (on with BT.2390 Algorithim)
Tone Mapping Mode: Auto
Tone Mapping Range: Auto
Tone Mapping Deset: 0
Tone Mapping Peak: 100
Tone Mapping Param: (blank)
Transcoding Thread Count: 8
FFmpeg Path: /usr/lib/jellyfin-ffmpeg/ffmpeg (I think this may be what's causing my issue but I'm not sure and I'm scared to break it worse)
Transcode Path: /config/data/transcodes
Fallback Font Folder Path: (blank)
Enable Fallback Fonts: (off)
Audio Boost when downmixing: 2
Max muxing queue size: 2048
Encoding Preset: Auto
H.265 Encoding CRF: 28
H.264 Encoding CRF: 23
Deinterlacing Method: YADIF
Double the framerate when deinterlacing: (off)
Allow subtitle extraction on the fly: (on)
Throttle Trancodes: (off)
Essentially what I had to do was modify my jellyfin container by: adding this line to my extra parameters under Advanced View
Extra Parameters: -e NVIDIA_DRIVER_CAPABILITIES=all -e NVIDIA_VISIBLE_DEVICES=all --gpus all
That's the exact line I used, I copy and pasted exactly that, obviously without the Extra Parameters part.
Than I created 2 variables in the container editor.
Variable 1:
Name: NVIDIA_VISIBLE_DEVICES
Key: NVIDIA_VISIBLE_DEVICES
value: all
Variable 2:
Name: NVIDIA_DRIVER_CAPABILITIES
Key: NVIDIA_DRIVER_CAPABILITIES
Value: all
Aside from this you need to make sure NVIDIA drivers and NVIDIA container toolkit is installed. On Unraid, you can install the "Nvidia Driver" app/plugin from the built-in apps installer, the author at time of writing is 'ich777'.
The container toolkit just works, I assume it comes with the drivers.
I also installed "GPU Statistics" I don't think it's necessary but it's nice to see how the GPU is performing.
After that I just setup the hardware transcoding on jellyfin and was good to go.
Original post:
Hello, I recently got into Jellyfin and after a few issues I have it working 90% of the way. I am able to stream my shows if I turn off hardware acceleration but when I set it to NVENC it stops loading and gives a Playback Error stating "This client is compatible with the media and the server isn't able to send a compatible media format."
I am running a jellyfin docker container off of my home server running unRaid. The server has a Ryzen 7 1700 and Geforce GTX 1050ti. I've tried following the jellyfin guide, the linuxserver.io guide, and the NVIDIA guide. The guides are all confusingly written, have steps out of order and all over the place and I've been working on this for 5 hours now and missed 2 classes so I'm finally asking for help. Incase it's relevant the show I'm testing with is a 'definitely legally acquired' copy of the first 13 seasons of Top Gear which aren't available on any streaming platform in my country. Jellyfin says the video is in 360p MPEG4 SDR which seems oddly low quality. The media files are MKV format and ~350 MB for an hour long episode.
This is what my log spits out every time I try to run the show with NVENC on. I added some information of my settings on Jellyfin after the log.
Code:
[17:12:21] [INF] [37] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for michael. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[17:12:21] [INF] [37] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/tvshows/Top Gear (UK)/Season 1/S01E01.mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=VideoCodecNotSupported, AudioCodecNotSupported ) media:/videos/3a2116c7-99fe-effa-0362-0923d3050881/master.m3u8?MediaSourceId=3a2116c799feeffa03620923d3050881&VideoCodec=h264&AudioCodec=mp3&AudioStreamIndex=1&VideoBitrate=139872000&AudioBitrate=128000&AudioSampleRate=32000&MaxFramerate=25&api_key=<token>&TranscodingMaxAudioChannels=8&RequireAvc=false&Tag=3b846e40d6c9131a699b6e24f6575312&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&mpeg4-level=-99&mpeg4-videobitdepth=8&mpeg4-audiochannels=2&TranscodeReasons=VideoCodecNotSupported,%20AudioCodecNotSupported
[17:12:21] [INF] [15] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[17:12:21] [INF] [15] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -autorotate 0 -i file:"/data/tvshows/Top Gear (UK)/Season 1/S01E01.mkv" -map_metadata -1 -map_chapters -1 -threads 8 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 4214080 -maxrate 4214080 -bufsize 8428160 -g:v:0 75 -keyint_min:v:0 75 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(512\,328*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(512/a\,328))/2)*2,format=yuv420p" -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 0 -hls_segment_filename "/config/data/transcodes/b340767f033df36935479574824ba104%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/b340767f033df36935479574824ba104.m3u8"
[17:12:21] [ERR] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[17:12:21] [ERR] [33] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/3a2116c7-99fe-effa-0362-0923d3050881/hls1/main/0.ts.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, HttpRequest request, 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_method956(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(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 Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.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.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[17:12:21] [INF] [36] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for michael. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[17:12:21] [INF] [36] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/tvshows/Top Gear (UK)/Season 1/S01E01.mkv, AudioStreamIndex=1, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=VideoCodecNotSupported, AudioCodecNotSupported ) media:/videos/3a2116c7-99fe-effa-0362-0923d3050881/master.m3u8?MediaSourceId=3a2116c799feeffa03620923d3050881&VideoCodec=h264&AudioCodec=mp3&AudioStreamIndex=1&VideoBitrate=139872000&AudioBitrate=128000&AudioSampleRate=32000&MaxFramerate=25&api_key=<token>&TranscodingMaxAudioChannels=8&RequireAvc=false&Tag=3b846e40d6c9131a699b6e24f6575312&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&mpeg4-level=-99&mpeg4-videobitdepth=8&mpeg4-audiochannels=2&TranscodeReasons=VideoCodecNotSupported,%20AudioCodecNotSupported
[17:12:21] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/data/transcodes/b340767f033df36935479574824ba104.m3u8
[17:12:21] [INF] [35] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[17:12:21] [INF] [35] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -autorotate 0 -i file:"/data/tvshows/Top Gear (UK)/Season 1/S01E01.mkv" -map_metadata -1 -map_chapters -1 -threads 8 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 4214080 -maxrate 4214080 -bufsize 8428160 -g:v:0 75 -keyint_min:v:0 75 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(512\,328*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(512/a\,328))/2)*2,format=yuv420p" -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 0 -hls_segment_filename "/config/data/transcodes/36630a27dc5517188adaa043915cde88%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/36630a27dc5517188adaa043915cde88.m3u8"
[17:12:21] [ERR] [35] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[17:12:21] [ERR] [35] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/3a2116c7-99fe-effa-0362-0923d3050881/hls1/main/0.ts.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, HttpRequest request, 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_method956(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(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 Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.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.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[17:12:22] [INF] [33] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for michael. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[17:12:22] [INF] [33] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/tvshows/Top Gear (UK)/Season 1/S01E01.mkv, AudioStreamIndex=1, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=VideoCodecNotSupported, AudioCodecNotSupported ) media:/videos/3a2116c7-99fe-effa-0362-0923d3050881/master.m3u8?MediaSourceId=3a2116c799feeffa03620923d3050881&VideoCodec=h264&AudioCodec=mp3&AudioStreamIndex=1&VideoBitrate=139872000&AudioBitrate=128000&AudioSampleRate=32000&MaxFramerate=25&api_key=<token>&TranscodingMaxAudioChannels=8&RequireAvc=false&Tag=3b846e40d6c9131a699b6e24f6575312&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&mpeg4-level=-99&mpeg4-videobitdepth=8&mpeg4-audiochannels=2&TranscodeReasons=VideoCodecNotSupported,%20AudioCodecNotSupported
[17:12:22] [INF] [33] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/data/transcodes/36630a27dc5517188adaa043915cde88.m3u8
[17:12:22] [INF] [38] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[17:12:22] [INF] [38] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -autorotate 0 -i file:"/data/tvshows/Top Gear (UK)/Season 1/S01E01.mkv" -map_metadata -1 -map_chapters -1 -threads 8 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 4214080 -maxrate 4214080 -bufsize 8428160 -g:v:0 75 -keyint_min:v:0 75 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(512\,328*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(512/a\,328))/2)*2,format=yuv420p" -codec:a:0 libmp3lame -ac 2 -ab 128000 -ar 32000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/data/transcodes/4c3be470a6a96e9a6f41fb83a2740c63%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/4c3be470a6a96e9a6f41fb83a2740c63.m3u8"
[17:12:22] [ERR] [38] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[17:12:22] [ERR] [38] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/3a2116c7-99fe-effa-0362-0923d3050881/hls1/main/0.ts.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, HttpRequest request, 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_method956(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(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 Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.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.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[17:12:22] [INF] [38] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/data/transcodes/4c3be470a6a96e9a6f41fb83a2740c63.m3u8
[17:12:23] [INF] [40] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.8.12 playing S01E01. Stopped at 0 ms
[17:12:23] [WRN] [40] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://192.168.0.100:8096/Sessions/Playing/Stopped to 192.168.0.197 in 0:00:01.5324906 with Status Code 204
Enable hardware decoding for:
HEVC, VC1, HEVC 10bit, VP9 10bit
Enable enhanced NVDEC decoder (on)
Hardware encoding options:
Enable hardware encoding (on)
Allow encoding in HEVC format (on)
Enable Tone mapping (on with BT.2390 Algorithim)
Tone Mapping Mode: Auto
Tone Mapping Range: Auto
Tone Mapping Deset: 0
Tone Mapping Peak: 100
Tone Mapping Param: (blank)
Transcoding Thread Count: 8
FFmpeg Path: /usr/lib/jellyfin-ffmpeg/ffmpeg (I think this may be what's causing my issue but I'm not sure and I'm scared to break it worse)
Transcode Path: /config/data/transcodes
Fallback Font Folder Path: (blank)
Enable Fallback Fonts: (off)
Audio Boost when downmixing: 2
Max muxing queue size: 2048
Encoding Preset: Auto
H.265 Encoding CRF: 28
H.264 Encoding CRF: 23
Deinterlacing Method: YADIF
Double the framerate when deinterlacing: (off)
Allow subtitle extraction on the fly: (on)
Throttle Trancodes: (off)