jellyfin / jellyfin-webos

WebOS Client for Jellyfin
https://jellyfin.org
Mozilla Public License 2.0
623 stars 60 forks source link

All playback that requires transcoding fails #210

Closed morkyy closed 3 months ago

morkyy commented 3 months ago

New-ish LG TV with latest WebOS version and Jellyfin app. Server configured with transcoding settings correctly and transcoding playback works on multiple other devices (Android/Android TV/Chrome browser/Window player).

Here are logs for the failed playback:

[2024-03-19 21:31:51.460 +00:00] [ERR] [64] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Users/1884b9adac014f8a8ea9071893772e5f/Items/002761140d5ae54fe3eb66affe040373/Intros".
> System.Net.WebException: The remote server returned an error: (404) Not Found.
>    at System.Net.HttpWebRequest.GetResponse()
>    at Jellyfin.Plugin.Intros.IntroManager.GetResponse(HttpWebRequest request)
>    at Jellyfin.Plugin.Intros.IntroManager.Cache(Int32 intro)
>    at Jellyfin.Plugin.Intros.IntroManager.Get()+MoveNext()
>    at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
>    at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
>    at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
>    at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
>    at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToArray()
>    at Jellyfin.Api.Controllers.UserLibraryController.GetIntros(Guid userId, Guid itemId)
>    at lambda_method1447(Closure , Object )
>    at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.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()
> --- End of stack trace from previous location ---
>    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()
> --- End of stack trace from previous location ---
>    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)
> [2024-03-19 21:31:51.604 +00:00] [INF] [64] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:31:51.604 +00:00] [INF] [64] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "XXXXXXXX", IsInLocalNetwork: False
> [2024-03-19 21:31:51.604 +00:00] [INF] [64] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Drive-Away Dolls (2023)/Drive-Away Dolls (2024) [imdb-tt19356262][WEBDL-2160p][EAC3 Atmos 5.1][h265]-ShowMeOnTheDollWhereHeTouchedYou.mkv", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/00276114-0d5a-e54f-e3eb-66affe040373/stream.mkv?MediaSourceId=002761140d5ae54fe3eb66affe040373&Static=true&VideoCodec=hevc&AudioCodec=eac3&AudioStreamIndex=2&api_key=<token>&Tag=7a259ff4b6b5cad73f1213576bbbd825"
> [2024-03-19 21:31:53.747 +00:00] [INF] [107] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-002761140d5ae54fe3eb66affe040373
> [2024-03-19 21:31:53.747 +00:00] [INF] [107] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 03/19/2024 21:31:53
> [2024-03-19 21:31:53.747 +00:00] [INF] [107] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
> [2024-03-19 21:31:53.747 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
> [2024-03-19 21:31:53.875 +00:00] [INF] [171] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:31:53.875 +00:00] [INF] [171] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "XXXXXXXX", IsInLocalNetwork: False
> [2024-03-19 21:31:53.875 +00:00] [INF] [171] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Drive-Away Dolls (2023)/Drive-Away Dolls (2024) [imdb-tt19356262][WEBDL-2160p][EAC3 Atmos 5.1][h265]-ShowMeOnTheDollWhereHeTouchedYou.mkv", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/00276114-0d5a-e54f-e3eb-66affe040373/master.m3u8?MediaSourceId=002761140d5ae54fe3eb66affe040373&VideoCodec=h264,hevc,hevc&AudioCodec=eac3&AudioStreamIndex=2&VideoBitrate=39232000&AudioBitrate=768000&AudioSampleRate=48000&MaxFramerate=23.976025&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=7a259ff4b6b5cad73f1213576bbbd825&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=DirectPlayError"
> [2024-03-19 21:31:55.498 +00:00] [INF] [167] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Drive-Away Dolls (2023)/Drive-Away Dolls (2024) [imdb-tt19356262][WEBDL-2160p][EAC3 Atmos 5.1][h265]-ShowMeOnTheDollWhereHeTouchedYou.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 35223745 -maxrate 35223745 -bufsize 70447490 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv\" -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/952deb206a9d465582e5428ca36eb5b9%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/952deb206a9d465582e5428ca36eb5b9.m3u8\""
> [2024-03-19 21:31:57.828 +00:00] [INF] [92] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:31:57.828 +00:00] [INF] [92] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "XXXXXXX", IsInLocalNetwork: False
> [2024-03-19 21:31:57.828 +00:00] [INF] [92] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Drive-Away Dolls (2023)/Drive-Away Dolls (2024) [imdb-tt19356262][WEBDL-2160p][EAC3 Atmos 5.1][h265]-ShowMeOnTheDollWhereHeTouchedYou.mkv", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/00276114-0d5a-e54f-e3eb-66affe040373/master.m3u8?MediaSourceId=002761140d5ae54fe3eb66affe040373&VideoCodec=h264,hevc,hevc&AudioCodec=eac3&AudioStreamIndex=2&VideoBitrate=39232000&AudioBitrate=768000&AudioSampleRate=48000&MaxFramerate=23.976025&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=7a259ff4b6b5cad73f1213576bbbd825&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=DirectPlayError"
> [2024-03-19 21:31:57.885 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/952deb206a9d465582e5428ca36eb5b9.m3u8"
> [2024-03-19 21:31:58.136 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
> [2024-03-19 21:31:58.136 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/952deb206a9d465582e5428ca36eb5b9.m3u8"
> [2024-03-19 21:31:59.486 +00:00] [INF] [58] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Drive-Away Dolls (2023)/Drive-Away Dolls (2024) [imdb-tt19356262][WEBDL-2160p][EAC3 Atmos 5.1][h265]-ShowMeOnTheDollWhereHeTouchedYou.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 35223745 -maxrate 35223745 -bufsize 70447490 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv\" -codec:a:0 eac3 -ac 6 -ab 640000 -ar 48000 -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/3b29eb5e4237eab9f12cc0ee0b9ff81b%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/3b29eb5e4237eab9f12cc0ee0b9ff81b.m3u8\""
> [2024-03-19 21:32:01.659 +00:00] [INF] [64] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/3b29eb5e4237eab9f12cc0ee0b9ff81b.m3u8"
> [2024-03-19 21:32:01.897 +00:00] [INF] [64] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
> [2024-03-19 21:32:01.897 +00:00] [INF] [64] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/3b29eb5e4237eab9f12cc0ee0b9ff81b.m3u8"
> [2024-03-19 21:32:03.404 +00:00] [INF] [64] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin for WebOS" "1.2.2" playing "Drive-Away Dolls". Stopped at "0" ms
> [2024-03-19 21:32:03.418 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-002761140d5ae54fe3eb66affe040373"
> [2024-03-19 21:32:03.418 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 03/19/2024 21:32:03
> [2024-03-19 21:32:03.418 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB

Also another failed playback attempt that looks slightly different:

[2024-03-19 21:32:25.391 +00:00] [ERR] [58] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Users/1884b9adac014f8a8ea9071893772e5f/Items/e6027b90ea36e6f9358d576dc41108a3/Intros".
> System.Net.WebException: The remote server returned an error: (404) Not Found.
>    at System.Net.HttpWebRequest.GetResponse()
>    at Jellyfin.Plugin.Intros.IntroManager.GetResponse(HttpWebRequest request)
>    at Jellyfin.Plugin.Intros.IntroManager.Cache(Int32 intro)
>    at Jellyfin.Plugin.Intros.IntroManager.Get()+MoveNext()
>    at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
>    at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
>    at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
>    at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
>    at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToArray()
>    at Jellyfin.Api.Controllers.UserLibraryController.GetIntros(Guid userId, Guid itemId)
>    at lambda_method1447(Closure , Object )
>    at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.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()
> --- End of stack trace from previous location ---
>    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()
> --- End of stack trace from previous location ---
>    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)
> [2024-03-19 21:32:25.453 +00:00] [INF] [92] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:32:25.453 +00:00] [INF] [92] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "172.70.86.51", IsInLocalNetwork: False
> [2024-03-19 21:32:25.453 +00:00] [INF] [92] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Ricky Stanicky (2024)/Ricky Stanicky (2024) [imdb-tt1660648][DoVi][WEBDL-2160p][HDR][EAC3 Atmos 5.1][h265]-FLUX.mkv", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/e6027b90-ea36-e6f9-358d-576dc41108a3/stream.mkv?MediaSourceId=e6027b90ea36e6f9358d576dc41108a3&Static=true&VideoCodec=hevc&AudioCodec=eac3&AudioStreamIndex=2&api_key=<token>&Tag=cda53ddbbd606e34a6ca4e2533c7f7e8"
> [2024-03-19 21:32:27.468 +00:00] [INF] [171] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-e6027b90ea36e6f9358d576dc41108a3
> [2024-03-19 21:32:27.468 +00:00] [INF] [171] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 03/19/2024 21:32:27
> [2024-03-19 21:32:27.468 +00:00] [INF] [171] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
> [2024-03-19 21:32:27.468 +00:00] [INF] [95] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
> [2024-03-19 21:32:27.601 +00:00] [INF] [167] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:32:27.601 +00:00] [INF] [167] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "172.70.86.51", IsInLocalNetwork: False
> [2024-03-19 21:32:27.601 +00:00] [INF] [167] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Ricky Stanicky (2024)/Ricky Stanicky (2024) [imdb-tt1660648][DoVi][WEBDL-2160p][HDR][EAC3 Atmos 5.1][h265]-FLUX.mkv", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/e6027b90-ea36-e6f9-358d-576dc41108a3/master.m3u8?MediaSourceId=e6027b90ea36e6f9358d576dc41108a3&VideoCodec=h264,hevc,hevc&AudioCodec=eac3&AudioStreamIndex=2&VideoBitrate=39424000&AudioBitrate=576000&AudioSampleRate=48000&MaxFramerate=24&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=cda53ddbbd606e34a6ca4e2533c7f7e8&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=DirectPlayError"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "XXXXXX"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "002761140d5ae54fe3eb66affe040373"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "1884b9adac014f8a8ea9071893772e5f"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 26
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = "e6027b90ea36e6f9358d576dc41108a3"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "1884b9adac014f8a8ea9071893772e5f"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "DirectPlay"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Jellyfin for WebOS"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "LG Smart TV"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Drive-Away Dolls"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "002761140d5ae54fe3eb66affe040373"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Movie"
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
> [2024-03-19 21:32:28.916 +00:00] [INF] [167] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
> [2024-03-19 21:32:29.037 +00:00] [INF] [95] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Ricky Stanicky (2024)/Ricky Stanicky (2024) [imdb-tt1660648][DoVi][WEBDL-2160p][HDR][EAC3 Atmos 5.1][h265]-FLUX.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 25579655 -maxrate 25579655 -bufsize 51159310 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -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/e65bcf4b48816e65e1715616b5082b1e%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/e65bcf4b48816e65e1715616b5082b1e.m3u8\""
> [2024-03-19 21:32:32.631 +00:00] [INF] [107] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:32:32.631 +00:00] [INF] [107] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "XXXXXXXX", IsInLocalNetwork: False
> [2024-03-19 21:32:32.631 +00:00] [INF] [107] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Ricky Stanicky (2024)/Ricky Stanicky (2024) [imdb-tt1660648][DoVi][WEBDL-2160p][HDR][EAC3 Atmos 5.1][h265]-FLUX.mkv", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/e6027b90-ea36-e6f9-358d-576dc41108a3/master.m3u8?MediaSourceId=e6027b90ea36e6f9358d576dc41108a3&VideoCodec=h264,hevc,hevc&AudioCodec=eac3&AudioStreamIndex=2&VideoBitrate=39424000&AudioBitrate=576000&AudioSampleRate=48000&MaxFramerate=24&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=cda53ddbbd606e34a6ca4e2533c7f7e8&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=DirectPlayError"
> [2024-03-19 21:32:32.704 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/e65bcf4b48816e65e1715616b5082b1e.m3u8"
> [2024-03-19 21:32:32.822 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
> [2024-03-19 21:32:32.822 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/e65bcf4b48816e65e1715616b5082b1e.m3u8"
> [2024-03-19 21:32:34.220 +00:00] [INF] [107] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Ricky Stanicky (2024)/Ricky Stanicky (2024) [imdb-tt1660648][DoVi][WEBDL-2160p][HDR][EAC3 Atmos 5.1][h265]-FLUX.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 25579655 -maxrate 25579655 -bufsize 51159310 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -codec:a:0 eac3 -ac 6 -ab 576000 -ar 48000 -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/a8be9851b75f8531dba4eea9cfb6e1a2%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/a8be9851b75f8531dba4eea9cfb6e1a2.m3u8\""
> [2024-03-19 21:32:37.572 +00:00] [INF] [153] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/a8be9851b75f8531dba4eea9cfb6e1a2.m3u8"
> [2024-03-19 21:32:37.750 +00:00] [INF] [153] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
> [2024-03-19 21:32:37.750 +00:00] [INF] [153] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/a8be9851b75f8531dba4eea9cfb6e1a2.m3u8"
> [2024-03-19 21:32:39.253 +00:00] [INF] [34] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin for WebOS" "1.2.2" playing "Ricky Stanicky". Stopped at "0" ms
> [2024-03-19 21:32:39.265 +00:00] [INF] [153] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-e6027b90ea36e6f9358d576dc41108a3"
> [2024-03-19 21:32:39.265 +00:00] [INF] [153] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 03/19/2024 21:32:39
> [2024-03-19 21:32:39.265 +00:00] [INF] [153] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "XXXXXXX"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "e6027b90ea36e6f9358d576dc41108a3"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "1884b9adac014f8a8ea9071893772e5f"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 26
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = ""
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "1884b9adac014f8a8ea9071893772e5f"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "na"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Jellyfin for WebOS"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "LG Smart TV"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Ricky Stanicky"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "e6027b90ea36e6f9358d576dc41108a3"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Movie"
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
> [2024-03-19 21:32:47.468 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited

And also a playback that didn't require transcode which played just fine:

> [2024-03-19 21:33:46.980 +00:00] [ERR] [28] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Users/1884b9adac014f8a8ea9071893772e5f/Items/4ce4ae178e1ad9a75a194d9ccca7376c/Intros".
> System.Net.WebException: The remote server returned an error: (404) Not Found.
>    at System.Net.HttpWebRequest.GetResponse()
>    at Jellyfin.Plugin.Intros.IntroManager.GetResponse(HttpWebRequest request)
>    at Jellyfin.Plugin.Intros.IntroManager.Cache(Int32 intro)
>    at Jellyfin.Plugin.Intros.IntroManager.Get()+MoveNext()
>    at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
>    at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
>    at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
>    at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
>    at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToArray()
>    at Jellyfin.Api.Controllers.UserLibraryController.GetIntros(Guid userId, Guid itemId)
>    at lambda_method1447(Closure , Object )
>    at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.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()
> --- End of stack trace from previous location ---
>    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()
> --- End of stack trace from previous location ---
>    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)
> [2024-03-19 21:33:47.035 +00:00] [INF] [14] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2024-03-19 21:33:47.035 +00:00] [INF] [14] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "XXXXXXX", IsInLocalNetwork: False
> [2024-03-19 21:33:47.035 +00:00] [INF] [14] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/tv/Euphoria (US)/Specials/Euphoria.US.S00E02.Part.2.Jules.1080p.AMZN.WEBRip.DDP5.1.x264-KiNGS[rarbg].mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/4ce4ae17-8e1a-d9a7-5a19-4d9ccca7376c/stream.mkv?MediaSourceId=4ce4ae178e1ad9a75a194d9ccca7376c&Static=true&VideoCodec=hevc&AudioCodec=eac3&AudioStreamIndex=1&api_key=<token>&Tag=004fa717d57f4502a9da37303b338e2b"
> [2024-03-19 21:33:50.245 +00:00] [INF] [64] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-4ce4ae178e1ad9a75a194d9ccca7376c
> [2024-03-19 21:33:50.245 +00:00] [INF] [64] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 03/19/2024 21:33:50
> [2024-03-19 21:33:50.245 +00:00] [INF] [64] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
> [2024-03-19 21:33:50.245 +00:00] [INF] [92] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
> [2024-03-19 21:33:51.254 +00:00] [INF] [28] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "XXXXXXX"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "1884b9adac014f8a8ea9071893772e5f"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 26
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = "4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "1884b9adac014f8a8ea9071893772e5f"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "DirectPlay"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Jellyfin for WebOS"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "LG Smart TV"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Euphoria - s00e02 - F*ck Anyone Who's Not A Sea Blob"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Episode"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : All matches, playback registered
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback tracker found, adding playback info : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:10.246 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
> [2024-03-19 21:34:10.249 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
> [2024-03-19 21:34:12.251 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:15.613 +00:00] [INF] [14] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin for WebOS" "1.2.2" playing "F*ck Anyone Who's Not A Sea Blob". Stopped at "25324" ms
> [2024-03-19 21:34:15.626 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjM0IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzEwODgzMjk3NDQw-1884b9adac014f8a8ea9071893772e5f-4ce4ae178e1ad9a75a194d9ccca7376c"
> [2024-03-19 21:34:15.626 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 03/19/2024 21:34:15
> [2024-03-19 21:34:15.626 +00:00] [INF] [61] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB

A few things I noted from the server logs:

The media that works seem to attempt direct play again with Anonymous Profile but that works as the TV supports those codecs etc.

Any idea what the issue could be?

dmitrylyzo commented 3 months ago

Not sure, but looking at 404 error:

Jellyfin shows the missing item until it is re-scanned.

morkyy commented 3 months ago

Not sure, but looking at 404 error:

  • missing file (disk not mounted)
  • file permissions

Jellyfin shows the missing item until it is re-scanned.

I'm very confident that the 404 error is related to the Intro plugin which for some reason has stopped working. The same error shows up on the item that plays successfully and it doesn't seem to be affecting anything.

I have disabled the addon and will re-run testing but that still doesn't explain why the profile is set to "anonymous profile", why it's attempting direct play first always and why it starts 2 ffmpeg streams.

To me this somehow looks like the client is not sending the supported codecs/formats to the server, the server proceeds with directplay which fails and then attempts transcoding which also fails for some reason and playback is stopped by the client.

morkyy commented 3 months ago

Did some further testing on this. Removed the Intro plugin which fixed the 404 error. However the playback issue is not fixed.

Also tested on a second LG tv (new model with 1080p res). On that model I get a similar behaviour where most movies do not play, but it seems that 1080p movies play fine.

For the ones that do not fail the app shows a "This client isn't compatible with the media and the server isn't sending a compatible media format."

Could this be related to Websockets? I am getting websocket timeouts lately which I'm investigating, still though this doesn't appear to be causing a problem to any other device except LG tvs.

Here's some more logs from the second LG tv.

[2024-03-20 20:30:07.885 +00:00] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-20 20:30:07.885 +00:00] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "108.162.220.87", IsInLocalNetwork: False
[2024-03-20 20:30:07.885 +00:00] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Star Wars (1977)/Star Wars (1977) [imdb-tt0076759][Bluray-2160p][HDR][TrueHD Atmos 7.1][x265]-DEPTH.mkv", AudioStreamIndex=4, SubtitleStreamIndex=0 ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/118ec018-5485-ff65-e95c-2252b3046623/stream.mkv?MediaSourceId=118ec0185485ff65e95c2252b3046623&Static=true&VideoCodec=hevc&AudioCodec=ac3&AudioStreamIndex=4&api_key=<token>&Tag=5567bcaff1ee95ae9e055d1368fc3037"
[2024-03-20 20:30:09.171 +00:00] [INF] [28] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-20 20:30:09.171 +00:00] [INF] [28] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "172.68.50.238", IsInLocalNetwork: False
[2024-03-20 20:30:09.172 +00:00] [INF] [28] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Star Wars (1977)/Star Wars (1977) [imdb-tt0076759][Bluray-2160p][HDR][TrueHD Atmos 7.1][x265]-DEPTH.mkv", AudioStreamIndex=4, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/118ec018-5485-ff65-e95c-2252b3046623/master.m3u8?MediaSourceId=118ec0185485ff65e95c2252b3046623&VideoCodec=h264,hevc,hevc&AudioCodec=ac3&AudioStreamIndex=4&VideoBitrate=39360000&AudioBitrate=640000&AudioSampleRate=48000&MaxFramerate=23.976025&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=5567bcaff1ee95ae9e055d1368fc3037&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=153&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=DirectPlayError"
[2024-03-20 20:30:09.185 +00:00] [INF] [151] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODcuMC40MjgwLjg4IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzAzODcyNDIyOTcx-ee47a82b5ebb43638be8d0326d916003-118ec0185485ff65e95c2252b3046623
[2024-03-20 20:30:09.186 +00:00] [INF] [151] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 03/20/2024 20:30:09
[2024-03-20 20:30:09.186 +00:00] [INF] [151] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[2024-03-20 20:30:09.186 +00:00] [INF] [59] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[2024-03-20 20:30:10.477 +00:00] [INF] [83] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Star Wars (1977)/Star Wars (1977) [imdb-tt0076759][Bluray-2160p][HDR][TrueHD Atmos 7.1][x265]-DEPTH.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 39360000 -maxrate 39360000 -bufsize 78720000 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -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/d8b231164e98c2aa7f36c3e84ec189f5%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/d8b231164e98c2aa7f36c3e84ec189f5.m3u8\""
[2024-03-20 20:30:13.256 +00:00] [INF] [128] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXXXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-20 20:30:13.256 +00:00] [INF] [128] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "172.68.50.239", IsInLocalNetwork: False
[2024-03-20 20:30:13.256 +00:00] [INF] [128] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Star Wars (1977)/Star Wars (1977) [imdb-tt0076759][Bluray-2160p][HDR][TrueHD Atmos 7.1][x265]-DEPTH.mkv", AudioStreamIndex=4, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/118ec018-5485-ff65-e95c-2252b3046623/master.m3u8?MediaSourceId=118ec0185485ff65e95c2252b3046623&VideoCodec=h264,hevc,hevc&AudioCodec=ac3&AudioStreamIndex=4&VideoBitrate=39360000&AudioBitrate=640000&AudioSampleRate=48000&MaxFramerate=23.976025&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=5567bcaff1ee95ae9e055d1368fc3037&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=153&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=DirectPlayError"
[2024-03-20 20:30:13.413 +00:00] [INF] [151] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/d8b231164e98c2aa7f36c3e84ec189f5.m3u8"
[2024-03-20 20:30:13.570 +00:00] [INF] [151] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2024-03-20 20:30:13.570 +00:00] [INF] [151] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/d8b231164e98c2aa7f36c3e84ec189f5.m3u8"
[2024-03-20 20:30:14.677 +00:00] [INF] [151] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Star Wars (1977)/Star Wars (1977) [imdb-tt0076759][Bluray-2160p][HDR][TrueHD Atmos 7.1][x265]-DEPTH.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 39360000 -maxrate 39360000 -bufsize 78720000 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -codec:a:0 ac3 -ac 6 -ab 640000 -ar 48000 -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/5bb8ac90bb053867d1548aaddf2e56dc%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/5bb8ac90bb053867d1548aaddf2e56dc.m3u8\""
[2024-03-20 20:30:17.031 +00:00] [INF] [76] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/5bb8ac90bb053867d1548aaddf2e56dc.m3u8"
[2024-03-20 20:30:17.207 +00:00] [INF] [76] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2024-03-20 20:30:17.207 +00:00] [INF] [76] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/5bb8ac90bb053867d1548aaddf2e56dc.m3u8"
[2024-03-20 20:30:18.713 +00:00] [INF] [76] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Web" "10.8.13" playing "Star Wars". Stopped at "0" ms
[2024-03-20 20:30:18.727 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODcuMC40MjgwLjg4IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzAzODcyNDIyOTcx-ee47a82b5ebb43638be8d0326d916003-118ec0185485ff65e95c2252b3046623"
[2024-03-20 20:30:18.727 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 03/20/2024 20:30:18
[2024-03-20 20:30:18.727 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "172.68.50.238"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "118ec0185485ff65e95c2252b3046623"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "ee47a82b5ebb43638be8d0326d916003"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 25
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = ""
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "ee47a82b5ebb43638be8d0326d916003"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "na"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Jellyfin Web"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "LG Smart TV"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Star Wars"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "118ec0185485ff65e95c2252b3046623"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Movie"
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
[2024-03-20 20:30:29.187 +00:00] [INF] [51] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited

And one more for a different file:

[2024-03-20 20:13:32.965 +00:00] [INF] [131] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-20 20:13:32.965 +00:00] [INF] [131] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "XXXXXX", IsInLocalNetwork: False
[2024-03-20 20:13:32.965 +00:00] [INF] [131] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv", AudioStreamIndex=4, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=AudioCodecNotSupported ) "media:/videos/0870c39b-3736-3a45-a01a-399bf27adb3e/master.m3u8?MediaSourceId=0870c39b37363a45a01a399bf27adb3e&VideoCodec=h264,hevc,hevc&AudioCodec=aac,mp3,ac3,eac3&AudioStreamIndex=4&VideoBitrate=39360000&AudioBitrate=640000&MaxFramerate=23.976025&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=5356f07e7d0c90951c35911bb622211e&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=153&hevc-videobitdepth=10&hevc-profile=main10&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=AudioCodecNotSupported"
[2024-03-20 20:13:33.107 +00:00] [INF] [63] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/e0ea61c6b003909d46e7d32614978d99.m3u8"
[2024-03-20 20:13:33.207 +00:00] [INF] [86] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2024-03-20 20:13:33.207 +00:00] [INF] [63] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/e0ea61c6b003909d46e7d32614978d99.m3u8"
[2024-03-20 20:13:34.307 +00:00] [INF] [86] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 20251583 -maxrate 20251583 -bufsize 40503166 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -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 mpegts -start_number 0 -hls_segment_filename \"/config/data/transcodes/c7dfe01d149dfa73381cc1fb68146b03%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/c7dfe01d149dfa73381cc1fb68146b03.m3u8\""
[2024-03-20 20:13:38.199 +00:00] [INF] [86] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "XXXX". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-20 20:13:38.199 +00:00] [INF] [86] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 40000000, RemoteIp: "172.68.50.107", IsInLocalNetwork: False
[2024-03-20 20:13:38.200 +00:00] [INF] [86] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv", AudioStreamIndex=4, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=AudioCodecNotSupported ) "media:/videos/0870c39b-3736-3a45-a01a-399bf27adb3e/master.m3u8?MediaSourceId=0870c39b37363a45a01a399bf27adb3e&VideoCodec=h264,hevc,hevc&AudioCodec=aac,mp3,ac3,eac3&AudioStreamIndex=4&VideoBitrate=39360000&AudioBitrate=640000&MaxFramerate=23.976025&api_key=<token>&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=5356f07e7d0c90951c35911bb622211e&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&hevc-level=153&hevc-videobitdepth=10&hevc-profile=main10&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=AudioCodecNotSupported"
[2024-03-20 20:13:38.299 +00:00] [INF] [132] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/c7dfe01d149dfa73381cc1fb68146b03.m3u8"
[2024-03-20 20:13:38.565 +00:00] [INF] [132] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2024-03-20 20:13:38.565 +00:00] [INF] [132] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/c7dfe01d149dfa73381cc1fb68146b03.m3u8"
[2024-03-20 20:13:39.745 +00:00] [INF] [88] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:\"/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 20251583 -maxrate 20251583 -bufsize 40503166 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -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 mpegts -start_number 0 -hls_segment_filename \"/config/data/transcodes/0d51c25cff16ddd506da67a9472ce0d3%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/0d51c25cff16ddd506da67a9472ce0d3.m3u8\""
[2024-03-20 20:13:42.983 +00:00] [INF] [132] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/data/transcodes/0d51c25cff16ddd506da67a9472ce0d3.m3u8"
[2024-03-20 20:13:43.222 +00:00] [INF] [132] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2024-03-20 20:13:43.222 +00:00] [INF] [132] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/data/transcodes/0d51c25cff16ddd506da67a9472ce0d3.m3u8"
[2024-03-20 20:13:44.728 +00:00] [INF] [132] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Web" "10.8.13" playing "Your Name.". Stopped at "0" ms
[2024-03-20 20:13:44.746 +00:00] [INF] [67] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "TW96aWxsYS81LjAgKFdlYjBTOyBMaW51eC9TbWFydFRWKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODcuMC40MjgwLjg4IFNhZmFyaS81MzcuMzYgV2ViQXBwTWFuYWdlcnwxNzAzODcyNDIyOTcx-ee47a82b5ebb43638be8d0326d916003-0870c39b37363a45a01a399bf27adb3e"
[2024-03-20 20:13:44.746 +00:00] [INF] [67] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 03/20/2024 20:13:44
[2024-03-20 20:13:44.746 +00:00] [INF] [67] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
[2024-03-20 20:13:52.885 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "172.68.50.107"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "0870c39b37363a45a01a399bf27adb3e"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "ee47a82b5ebb43638be8d0326d916003"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 25
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = ""
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "ee47a82b5ebb43638be8d0326d916003"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "na"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Jellyfin Web"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "LG Smart TV"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Your Name."
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "0870c39b37363a45a01a399bf27adb3e"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Movie"
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
[2024-03-20 20:13:52.886 +00:00] [INF] [132] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
dmitrylyzo commented 3 months ago

To find out why transcoding fails, check the Ffmpeg*.log file corresponding to the failed playback.

The DirectPlayError transcoding reason isn't normal - it is fallback transcoding.

Please post:

morkyy commented 3 months ago

there's 2 different TVs that this happens on, on separate houses and internet connections.

One of them is a 32lq73 model.

Jellyfin Web is the latest version 10.8.13

This happens on multiple media as I've pasted in the logs. Here's the info on some of those files.

image image image

the ffmpeg log file just exits gracefully with a q command. Here's the log:

/videos/0870c39b-3736-3a45-a01a-399bf27adb3e/hls1/main/0.ts

{"Protocol":0,"Id":"0870c39b37363a45a01a399bf27adb3e","Path":"/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv,webm","Size":9714136064,"Name":"Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS","IsRemote":false,"ETag":"5356f07e7d0c90951c35911bb622211e","RunTimeTicks":63956389888,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"subrip","CodecTag":null,"Language":"gre","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Gre - SUBRIP - External","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":0,"Score":null,"IsExternal":true,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":"/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.el.srt","PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"English - SUBRIP - External","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":1,"Score":null,"IsExternal":true,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":"/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.en.srt","PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"hevc","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":"bt2020nc","ColorTransfer":"smpte2084","ColorPrimaries":"bt2020","DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":"HDR","VideoRangeType":"HDR10","VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"4K HEVC HDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":12150950,"BitDepth":10,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"Height":2160,"Width":3840,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main 10","Type":1,"AspectRatio":"16:9","Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p10le","Level":153,"IsAnamorphic":null},{"Codec":"dts","CodecTag":null,"Language":"jpn","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"Japanese - DTS-HD MA - 5.1 - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":3595255,"BitDepth":24,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"DTS-HD MA","Type":0,"AspectRatio":null,"Index":3,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"dts","CodecTag":null,"Language":"jpn","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"Theme Song English Version","VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"Theme Song English Version - Japanese - DTS-HD MA - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":3603161,"BitDepth":24,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"DTS-HD MA","Type":0,"AspectRatio":null,"Index":4,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"PGSSUB","CodecTag":null,"Language":"jpn","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Japanese - PGSSUB","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":5,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"English - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":6,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"PGSSUB","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"English - Default - PGSSUB","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":7,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"PGSSUB","CodecTag":null,"Language":"chi","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"Simplified Chinese","VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Simplified Chinese - PGSSUB","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":8,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"Theme Song English Version","VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Theme Song English Version - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":9,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"PGSSUB","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"Theme Song English Version","VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Theme Song English Version - PGSSUB","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":10,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":19349366,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:"/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -map -0:s -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 20251583 -maxrate 20251583 -bufsize 40503166 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv" -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 mpegts -start_number 0 -hls_segment_filename "/config/data/transcodes/f319e149c127e8a46b179ce59fc3cf3b%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/f319e149c127e8a46b179ce59fc3cf3b.m3u8"

ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[matroska,webm @ 0x5609e69beec0] Could not find codec parameters for stream 3 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' (200000000) and 'probesize' (5000000) options
[matroska,webm @ 0x5609e69beec0] Could not find codec parameters for stream 5 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' (200000000) and 'probesize' (5000000) options
[matroska,webm @ 0x5609e69beec0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' (200000000) and 'probesize' (5000000) options
[matroska,webm @ 0x5609e69beec0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' (200000000) and 'probesize' (5000000) options
Input #0, matroska,webm, from 'file:/movies/Your Name. (2016)/Your Name. (2016) [imdb-tt5311514][Bluray-2160p][HDR][DTS-HD MA 5.1][x265]-VALiS.mkv':
  Metadata:
    encoder         : libebml v1.3.6 + libmatroska v1.4.9
    creation_time   : 2018-10-16T08:21:14.000000Z
  Duration: 01:46:35.64, start: 0.000000, bitrate: 12150 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 94.094000
      Metadata:
        title           : 00:00:00.000
    Chapter #0:1: start 94.094000, end 201.868000
      Metadata:
        title           : 00:01:34.094
    Chapter #0:2: start 201.868000, end 313.271000
      Metadata:
        title           : 00:03:21.868
    Chapter #0:3: start 313.271000, end 517.308000
      Metadata:
        title           : 00:05:13.271
    Chapter #0:4: start 517.308000, end 731.314000
      Metadata:
        title           : 00:08:37.308
    Chapter #0:5: start 731.314000, end 872.371000
      Metadata:
        title           : 00:12:11.314
    Chapter #0:6: start 872.371000, end 1042.500000
      Metadata:
        title           : 00:14:32.371
    Chapter #0:7: start 1042.500000, end 1377.918000
      Metadata:
        title           : 00:17:22.500
    Chapter #0:8: start 1377.918000, end 1625.624000
      Metadata:
        title           : 00:22:57.918
    Chapter #0:9: start 1625.624000, end 1696.570000
      Metadata:
        title           : 00:27:05.624
    Chapter #0:10: start 1696.570000, end 1793.542000
      Metadata:
        title           : 00:28:16.570
    Chapter #0:11: start 1793.542000, end 1962.836000
      Metadata:
        title           : 00:29:53.542
    Chapter #0:12: start 1962.836000, end 2246.995000
      Metadata:
        title           : 00:32:42.836
    Chapter #0:13: start 2246.995000, end 2517.765000
      Metadata:
        title           : 00:37:26.995
    Chapter #0:14: start 2517.765000, end 2670.334000
      Metadata:
        title           : 00:41:57.765
    Chapter #0:15: start 2670.334000, end 2754.001000
      Metadata:
        title           : 00:44:30.334
    Chapter #0:16: start 2754.001000, end 2908.656000
      Metadata:
        title           : 00:45:54.001
    Chapter #0:17: start 2908.656000, end 3181.387000
      Metadata:
        title           : 00:48:28.656
    Chapter #0:18: start 3181.387000, end 3413.869000
      Metadata:
        title           : 00:53:01.387
    Chapter #0:19: start 3413.869000, end 3822.318000
      Metadata:
        title           : 00:56:53.869
    Chapter #0:20: start 3822.318000, end 3963.793000
      Metadata:
        title           : 01:03:42.318
    Chapter #0:21: start 3963.793000, end 4184.931000
      Metadata:
        title           : 01:06:03.793
    Chapter #0:22: start 4184.931000, end 4361.816000
      Metadata:
        title           : 01:09:44.931
    Chapter #0:23: start 4361.816000, end 4602.473000
      Metadata:
        title           : 01:12:41.816
    Chapter #0:24: start 4602.473000, end 4881.710000
      Metadata:
        title           : 01:16:42.473
    Chapter #0:25: start 4881.710000, end 5352.806000
      Metadata:
        title           : 01:21:21.710
    Chapter #0:26: start 5352.806000, end 5571.858000
      Metadata:
        title           : 01:29:12.806
    Chapter #0:27: start 5571.858000, end 5821.733000
      Metadata:
        title           : 01:32:51.858
    Chapter #0:28: start 5821.733000, end 6079.615000
      Metadata:
        title           : 01:37:01.733
    Chapter #0:29: start 6079.615000, end 6395.639000
      Metadata:
        title           : 01:41:19.615
  Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default)
    Metadata:
      BPS-eng         : 4897895
      DURATION-eng    : 01:46:35.639000000
      NUMBER_OF_FRAMES-eng: 153342
      NUMBER_OF_BYTES-eng: 3915646168
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:1(jpn): Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s32p (24 bit) (default)
    Metadata:
      BPS-eng         : 3595255
      DURATION-eng    : 01:46:35.638000000
      NUMBER_OF_FRAMES-eng: 599591
      NUMBER_OF_BYTES-eng: 2874243772
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:2(jpn): Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s32p (24 bit)
    Metadata:
      title           : Theme Song English Version
      BPS-eng         : 3603161
      DURATION-eng    : 01:46:35.638000000
      NUMBER_OF_FRAMES-eng: 599591
      NUMBER_OF_BYTES-eng: 2880564388
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:3(jpn): Subtitle: hdmv_pgs_subtitle
    Metadata:
      BPS-eng         : 40622
      DURATION-eng    : 01:45:22.984000000
      NUMBER_OF_FRAMES-eng: 3515
      NUMBER_OF_BYTES-eng: 32106588
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:4(eng): Subtitle: subrip
    Metadata:
      BPS-eng         : 61
      DURATION-eng    : 01:45:31.659000000
      NUMBER_OF_FRAMES-eng: 1302
      NUMBER_OF_BYTES-eng: 48681
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:5(eng): Subtitle: hdmv_pgs_subtitle (default)
    Metadata:
      BPS-eng         : 30685
      DURATION-eng    : 01:45:31.659000000
      NUMBER_OF_FRAMES-eng: 2456
      NUMBER_OF_BYTES-eng: 24286422
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:6(chi): Subtitle: hdmv_pgs_subtitle
    Metadata:
      title           : Simplified Chinese
      BPS-eng         : 32414
      DURATION-eng    : 01:45:22.650000000
      NUMBER_OF_FRAMES-eng: 2919
      NUMBER_OF_BYTES-eng: 25617948
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:7(eng): Subtitle: subrip
    Metadata:
      title           : Theme Song English Version
      BPS-eng         : 48
      DURATION-eng    : 01:45:31.492000000
      NUMBER_OF_FRAMES-eng: 1183
      NUMBER_OF_BYTES-eng: 38711
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:8(eng): Subtitle: hdmv_pgs_subtitle
    Metadata:
      title           : Theme Song English Version
      BPS-eng         : 27167
      DURATION-eng    : 01:45:31.492000000
      NUMBER_OF_FRAMES-eng: 2297
      NUMBER_OF_BYTES-eng: 21500973
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-16 08:21:14
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_qsv))
  Stream #0:2 -> #0:1 (dts (dca) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
Output #0, hls, to '/config/data/transcodes/f319e149c127e8a46b179ce59fc3cf3b.m3u8':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264, qsv(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 20251 kb/s, 23.98 fps, 90k tbn (default)
    Metadata:
      encoder         : Lavc59.37.100 h264_qsv
    Side data:
      cpb: bitrate max/min/avg: 20251583/0/20251583 buffer size: 40503166 vbv_delay: N/A
  Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 640 kb/s
    Metadata:
      encoder         : Lavc59.37.100 libfdk_aac
frame=    1 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed=   0x    
frame=    1 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   40 fps= 36 q=16.0 size=N/A time=00:00:01.72 bitrate=N/A speed=1.54x    
frame=   79 fps= 49 q=21.0 size=N/A time=00:00:03.32 bitrate=N/A speed=2.04x    
[hls @ 0x5609e69f4980] Opening '/config/data/transcodes/f319e149c127e8a46b179ce59fc3cf3b0.ts' for writing
frame=  117 fps= 55 q=18.0 size=N/A time=00:00:04.92 bitrate=N/A speed= 2.3x    
[hls @ 0x5609e69f4980] Opening '/config/data/transcodes/f319e149c127e8a46b179ce59fc3cf3b1.ts' for writing
frame=  155 fps= 58 q=23.0 size=N/A time=00:00:06.46 bitrate=N/A speed=2.44x    

[q] command received. Exiting.

[hls @ 0x5609e69f4980] Opening '/config/data/transcodes/f319e149c127e8a46b179ce59fc3cf3b2.ts' for writing
frame=  184 fps= 60 q=24.0 Lsize=N/A time=00:00:07.65 bitrate=N/A speed=2.48x    
video:19745kB audio:632kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
dmitrylyzo commented 3 months ago

Are both TVs non-4K (FHD)? I suspect they just can't play 4K. Try limiting the resolution when transcoding in User Settings / Playback (in the Jellyfin app on TV).

morkyy commented 3 months ago

Are both TVs non-4K (FHD)? I suspect they just can't play 4K. Try limiting the resolution when transcoding in User Settings / Playback (in the Jellyfin app on TV).

One of them definitely is. Not 100% sure about the other one.

Still though, if they are FHD shouldn't Jellyfin automatically transcode to that resolution? I mean how does it work with phones that don't have a 4k resolution?

Also the quality setting changes the bitrate and not the resolution as far as I know. What settings exactly should I change?

morkyy commented 3 months ago

Did some more testing by changing the settings.

I changed the maximum resolution to 1080p from Auto which didn't do much. Then I changed the bitrate to 1080p-20Mbps which made some movies play (the ones that have a bitrate larger than 20Mbps). The transcoding reason now is ExceedingBitrateLimit which forces transcode which in return drops the resolution to 1080p so it's working. One of the movies that had a bitrate of about 16Mbps was still not playing. Dropping the quality even more, down to 15Mbps made that movie work as it was now transcoding due to "bitrateexceedslimit".

To me this sounds like the transcodes that I'm seeing in my logs are just the audio, since it's multichannel and not supported by TV speakers, and the video stream is repackaged without changing the resolution.

Only when forcing a full transcode it drops the resolution to 1080p which is supported by the TV. It seems that something is not working correctly here. Either the client is not reporting the max supported resolution or the server doesn't take that into account when doing a transcode.

Dropping the quality down to 15Mbps in order to force a transcode and make the movie playable is not a solution either. As jellyfin should auto-detect the max supported resolution and make sure to transcode, regardless of the quality set.

dmitrylyzo commented 3 months ago

Either the client is not reporting the max supported resolution or the server doesn't take that into account when doing a transcode.

The Maximum Allowed Video Transcoding Resolution was introduced to prevent video transcoding to a resolution higher than the screen resolution. Yes, it seems to only work when video requires transcoding.

As jellyfin should auto-detect the max supported resolution and make sure to transcode, regardless of the quality set.

Some devices are capable playing videos with higher resolution, and users may want to preserve the resolution to have anti-aliasing.

Some devices report lower resolution, so we can't enable limits by default. For TVs we can, more or less. There will probably be a problem with rotated videos - they can play despite their height (=width) being greater than the screen height.

Currently, there's no way to set maximum allowed resolution for DirectPlay via UI. So we rely on DirectPlayError. In your case, it should switch to full transcode on 2nd failure.

morkyy commented 3 months ago

Either the client is not reporting the max supported resolution or the server doesn't take that into account when doing a transcode.

The Maximum Allowed Video Transcoding Resolution was introduced to prevent video transcoding to a resolution higher than the screen resolution. Yes, it seems to only work when video requires transcoding.

As jellyfin should auto-detect the max supported resolution and make sure to transcode, regardless of the quality set.

Some devices are capable playing videos with higher resolution, and users may want to preserve the resolution to have anti-aliasing.

Some devices report lower resolution, so we can't enable limits by default. For TVs we can, more or less. There will probably be a problem with rotated videos - they can play despite their height (=width) being greater than the screen height.

Currently, there's no way to set maximum allowed resolution for DirectPlay via UI. So we rely on DirectPlayError. In your case, it should switch to full transcode on 2nd failure.

All that makes sense.

Maybe what I meant wasn't phrased correctly. What I meant was that jellyfin should autodetect the max supported resolution and transcode as needed if the original media is a higher resolution.

In my opinion since autodetect is not reliable, the manual resolution limit should apply for direct play as well as transcode, and not just transcode.

On top of that in my specific case the media was indeed getting "transcoded" due to the audio codex not supported but it was still not changing resolution and was failing with "DirectPlayError". I get that this was more of an audio transcode and repacking and there was no transcoding on the video stream however, as you said the second (or even third attempt) should be a full transcode which in theory should be in the max set resolution according to the settings (1080 in this case) but this didn't work.

As you can see from the logs the second and third ffmpeg attempt also failed for some reason. Is this a bug maybe?

From what you said sounds like not an expected behaviour.

dmitrylyzo commented 3 months ago

Your case:

  1. DirectPlay -> unsupported resolution -> DirectPlayError -> switch to audio transcoding.
  2. Video copy, audio transcoding -> unsupported resolution -> DirectPlayError -> switch to full transcoding.
  3. Full transcoding. It should scale down the video according to Maximum Allowed Video Transcoding Resolution.

The question is why it doesn't scale down the video. Could you please post the Ffmpeg log corresponding to the last DirectPlayError retry with Maximum Allowed Video Transcoding Resolution = 1080p?

In my opinion since autodetect is not reliable, the manual resolution limit should apply for direct play as well as transcode, and not just transcode.

As a quick fix, yes. It can lead to other undesirable effects, mostly related to rotated videos (phone videos in portrait orientation). Maybe rarely, but still.

For webOS, we get the resolution from the device info: https://github.com/jellyfin/jellyfin-webos/blob/d489b3a9d482970f8398c97bc367f037c5ee4292/frontend/js/webOS.js#L101-L102 It is more or less reliable, but we don't have every possible LG TV to test it.