Yesterday, 03:33 PM
(This post was last modified: Yesterday, 03:34 PM by bobbinz. Edited 1 time in total.
Edit Reason: formatting
)
Hi,
I have had jellyfin for many years on mu QNAP NAS running in docker.
For various reasons I had to recreate the containers and I am clearly missing some settings somewhere!
Firstly here is my docker compose:
When I attempt to play something back I get "Playback failed due to a fatal player error."
Here is the Jellyfin log
FFMpeg is correctly at /usr/lib/jellyfin-ffmpeg/ffmpeg as it would be by default. Hardware encoding is disabled.
It's log output is
Clearly I am missing something fundamental, but I am somewhat out of ideas. I can access the media files in the console of the jellyfin container just fine.
Incidentally some of the thumbnails are missing, but I expect that to be related.
Can anybody share any wisdom?
Thanks
I have had jellyfin for many years on mu QNAP NAS running in docker.
For various reasons I had to recreate the containers and I am clearly missing some settings somewhere!
Firstly here is my docker compose:
Code:
---
version: "2.1"
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1001
- PGID=1000
- TZ=Europe/London
- JELLYFIN_PublishedServerUrl=jellyfin.address.domain
volumes:
- /share/configs/jellyfin:/config
- /share/Public/tv:/data/tvshows
- /share/Public/film:/data/movies
- /share/Public/music:/data/music
- /share/Public/audiobooks:/data/audiobooks
ports:
- 8096:8096
- 8920:8920 #optional
- 7359:7359/udp #optional
- 1900:1900/udp #optional
restart: unless-stopped
When I attempt to play something back I get "Playback failed due to a fatal player error."
Here is the Jellyfin log
Code:
[2025-07-23 16:27:59.668 +01:00] [INF] [9] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "bobbinz". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2025-07-23 16:27:59.668 +01:00] [INF] [9] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 250000000, RemoteIP: "10.10.64.150", IsInLocalNetwork: True
[2025-07-23 16:27:59.695 +01:00] [INF] [21] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/transcode/c13f904853705a3c56dd1678d67b4abd.m3u8"
[2025-07-23 16:27:59.783 +01:00] [INF] [20] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[2025-07-23 16:27:59.798 +01:00] [INF] [21] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2025-07-23 16:27:59.799 +01:00] [INF] [21] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -i file:\"/data/tv/The Night Agent/Season 1/The Night Agent S01E08 - Redux.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset veryfast -crf 24 -maxrate 5468054 -bufsize 10936108 -profile:v:0 main -level 40 -x264opts:0 subme=0:me_range=16:rc_lookahead=10:me=hex:open_gop=0 -force_key_frames:0 \"expr:gte(t,n_forced*3)\" -sc_threshold:v:0 0 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1080*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1080))/2)*2,format=yuv420p\" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -af \"volume=2\" -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 \"/transcode/93be344b2218f81b1952b5a44ed1f3be%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/transcode/93be344b2218f81b1952b5a44ed1f3be.m3u8\""
[2025-07-23 16:27:59.824 +01:00] [ERR] [21] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 254
[2025-07-23 16:27:59.922 +01:00] [ERR] [9] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/videos/0865732d-79ec-457a-ae7e-942f1c14d4be/hls1/main/0.ts".
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 254
at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId)
at Jellyfin.Api.Controllers.DynamicHlsController.GetHlsVideoSegment(Guid itemId, String playlistId, Int32 segmentId, String container, Int64 runtimeTicks, Int64 actualSegmentLengthTicks, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding)
at lambda_method1479(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[2025-07-23 16:27:59.977 +01:00] [INF] [9] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/transcode/93be344b2218f81b1952b5a44ed1f3be.m3u8"
[2025-07-23 16:28:00.977 +01:00] [INF] [20] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: User Data Sync: User "bobbinz" ("2033de41bc07400b88ce212bb2627242") posted 2 updates
[2025-07-23 16:28:00.977 +01:00] [INF] [20] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Finished user data sync, taking "00:00:01.1945456"
[2025-07-23 16:28:01.480 +01:00] [INF] [20] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Web" "10.10.7" playing "Redux". Stopped at "0" ms
[2025-07-23 16:28:01.561 +01:00] [INF] [9] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwNy4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2Njg4OTQzMzQ5MjE1-2033de41bc07400b88ce212bb2627242-0865732d79ec457aae7e942f1c14d4be"
[2025-07-23 16:28:01.562 +01:00] [INF] [9] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 07/23/2025 16:28:01
[2025-07-23 16:28:01.564 +01:00] [INF] [9] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
[2025-07-23 16:28:01.980 +01:00] [INF] [20] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[2025-07-23 16:28:02.782 +01:00] [INF] [20] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: User Data Sync: User "bobbinz" ("2033de41bc07400b88ce212bb2627242") posted 2 updates
[2025-07-23 16:28:02.782 +01:00] [INF] [20] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Finished user data sync, taking "00:00:00.8016561"
[2025-07-23 16:28:19.376 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "10.10.64.150"
[2025-07-23 16:28:19.377 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id = "0865732d79ec457aae7e942f1c14d4be"
[2025-07-23 16:28:19.377 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id = "2033de41bc07400b88ce212bb2627242"
[2025-07-23 16:28:19.377 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int = 1
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id = ""
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id = "2033de41bc07400b88ce212bb2627242"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method = "na"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName = "Jellyfin Web"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName = "Chrome"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName = "The Night Agent - s01e08 - Redux"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId = "0865732d79ec457aae7e942f1c14d4be"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType = "Episode"
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
[2025-07-23 16:28:19.378 +01:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
FFMpeg is correctly at /usr/lib/jellyfin-ffmpeg/ffmpeg as it would be by default. Hardware encoding is disabled.
It's log output is
Code:
ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 13 (Ubuntu 13.3.0-6ubuntu2~24.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --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-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
[in#0 @ 0x5586f4b05d40] Error opening input: No such file or directory
Error opening input file file:/data/tv/The Night Agent/Season 1/The Night Agent S01E08 - Redux.mkv.
Error opening input files: No such file or directory
Clearly I am missing something fundamental, but I am somewhat out of ideas. I can access the media files in the console of the jellyfin container just fine.
Incidentally some of the thumbnails are missing, but I expect that to be related.
Can anybody share any wisdom?
Thanks