Media sources duration mismatch leeds to the loops at the end of the file #6980

Closed
opened 2026-02-07 04:21:29 +03:00 by OVERLORD · 11 comments
Owner

Originally created by @Victor-Y-Fadeev on GitHub (May 1, 2025).

Description of the bug

When I play media with the different length of video, audio or subtitles I got loops at the end of file.
Bug occures on Android phone and Android TV, but I can not guarantee it's reprodusion in browser.
I got two examples for this bug reprodution.


The common one is single *.mkv with one video, two audio and two subtitles streams.
The last subtitle duration is loger than video and the empty segments filled with repetitions of the end of the video and audio stream.

Duration of streams:

  • Video: 00:01:32.092000000
  • Audio: 00:01:32.138000000 (AniLibria)
  • Audio: 00:01:32.090000000
  • Subtitle: 00:00:29.490000000 (AniLibria [Надписи])
  • Subtitle: 00:01:50.120000000 (AniLibria [Полные])

GDrive links:


The next one contain:

  • *.mkv with one video, two audio and two subtitles
  • one *.mka external audio
  • one *.srt external subtitle

It's "harder" to reproduce because of file duration.
You need to play/cache the whole file to catch the repetitions of external audio at the end of file.
If I play the end of file I cannot catch the but with loops.

Duration of files:

  • *.mka: 00:24:37.84 (all)
  • *.mka: 00:24:28.03
  • *.srt: N/A

GDrive links:

Reproduction steps

  1. Setup Jellyfin server
  2. Add TV Shows media library /data/series/anime with files from GDrive:
  3. Run media:
    • Pure Pure Pleiades 2 - Play 11 - A Dangerous One - with AniLibria audio
    • Chi Weakens - with external audio
  4. At the end of file loops occurs for Android applications

What is the current bug behavior?

If subtitles longer than video then video and audio will be looped to fill the missing segment at the end of file.

If audio shorter than video then the end of audio will be repeated after end until the end of video stream.

What is the expected correct behavior?

Play shoub be stopped after video end. Don't continue or repeating anythin if video stream ends. For example MPV player do this.

If audio ends before video then there shoud be silense til the end of video stream. Don't switch to another audio or repeats of this one.

Jellyfin Server version

10.10.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.10.7

Environment

- OS: Ubuntu
- Linux Kernel: 6.8.0
- Virtualization: Docker
- Clients: Android
- Browser: Edge 135.0.3179.98
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration: none
- GPU Model: none
- Plugins: TheTVDB
- Reverse Proxy: none
- Base URL: none
- Networking: Host, NAT
- Storage: local, cloud

Jellyfin logs

[2025-04-30 21:10:23.863 +00:00] [INF] [1] Main: Jellyfin version: "10.10.7"
[2025-04-30 21:10:23.882 +00:00] [INF] [1] Main: Environment Variables: ["[JELLYFIN_CONFIG_DIR, /config/config]", "[JELLYFIN_FFMPEG, /usr/lib/jellyfin-ffmpeg/ffmpeg]", "[JELLYFIN_DATA_DIR, /config]", "[JELLYFIN_WEB_DIR, /jellyfin/jellyfin-web]", "[JELLYFIN_LOG_DIR, /config/log]", "[JELLYFIN_CACHE_DIR, /cache]"]
[2025-04-30 21:10:23.885 +00:00] [INF] [1] Main: Arguments: ["/jellyfin/jellyfin.dll"]
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Operating system: "Debian GNU/Linux 12 (bookworm)"
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Architecture: X64
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: 64-Bit Process: True
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: User Interactive: True
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Processor count: 2
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Program data path: "/config"
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Log directory path: "/config/log"
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Config directory path: "/config/config"
[2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Cache path: "/cache"
[2025-04-30 21:10:23.887 +00:00] [INF] [1] Main: Temp directory path: "/tmp/jellyfin"
[2025-04-30 21:10:23.887 +00:00] [INF] [1] Main: Web resources path: "/jellyfin/jellyfin-web"
[2025-04-30 21:10:23.887 +00:00] [INF] [1] Main: Application directory: "/jellyfin/"
[2025-04-30 21:10:24.011 +00:00] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/cache"
[2025-04-30 21:10:24.074 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[2025-04-30 21:10:24.093 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "Jellyfin.Plugin.Tvdb, Version=19.0.0.0, Culture=neutral, PublicKeyToken=null" from "/config/plugins/TheTVDB_19.0.0.0/Jellyfin.Plugin.Tvdb.dll"
[2025-04-30 21:10:24.100 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "Tvdb.Sdk, Version=4.7.10.0, Culture=neutral, PublicKeyToken=null" from "/config/plugins/TheTVDB_19.0.0.0/Tvdb.Sdk.dll"
[2025-04-30 21:10:24.156 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[2025-04-30 21:10:24.156 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: []
[2025-04-30 21:10:24.156 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["127.0.0.1", "172.18.0.2"]
[2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["0.0.0.0"]
[2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is "Allowlist"
[2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: []
[2025-04-30 21:10:25.610 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TheTVDB" "19.0.0.0"
[2025-04-30 21:10:25.611 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TMDb" "10.10.7.0"
[2025-04-30 21:10:25.612 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "Studio Images" "10.10.7.0"
[2025-04-30 21:10:25.612 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "OMDb" "10.10.7.0"
[2025-04-30 21:10:25.631 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "MusicBrainz" "10.10.7.0"
[2025-04-30 21:10:25.631 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "AudioDB" "10.10.7.0"
[2025-04-30 21:10:25.734 +00:00] [INF] [1] Main: Kestrel is listening on "0.0.0.0"
[2025-04-30 21:10:25.751 +00:00] [WRN] [1] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: No XML encryptor configured. Key {83433a71-8bc9-4ba7-9b38-eda2d8873b00} may be persisted to storage in unencrypted form.
[2025-04-30 21:10:26.249 +00:00] [WRN] [1] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: "/wwwroot". Static files may be unavailable.
[2025-04-30 21:10:26.282 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Running startup tasks
[2025-04-30 21:10:26.284 +00:00] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory "/data/series/anime"
[2025-04-30 21:10:26.295 +00:00] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Generate Trickplay Images" set to fire at 2025-05-01 03:00:00.000 +00:00, which is 05:49:33.7042677 from now.
[2025-04-30 21:10:26.306 +00:00] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Extract Chapter Images" set to fire at 2025-05-01 02:00:00.000 +00:00, which is 04:49:33.6938152 from now.
[2025-04-30 21:10:26.368 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version "7.0.2"
[2025-04-30 21:10:26.418 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available "decoders": ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "ac4", "dca", "flac", "mp3", "truehd"]
[2025-04-30 21:10:26.435 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available "encoders": ["libsvtav1", "av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi", "libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mjpeg_qsv", "mjpeg_vaapi", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
[2025-04-30 21:10:26.461 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["bwdif_cuda", "deinterlace_qsv", "deinterlace_vaapi", "flip_vulkan", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "scale_vulkan", "tonemapx", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "transpose_cuda", "transpose_opencl", "transpose_vaapi", "transpose_vulkan", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"]
[2025-04-30 21:10:26.584 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan"]
[2025-04-30 21:10:29.332 +00:00] [INF] [8] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Clean Transcode Directory" Completed after 0 minute(s) and 0 seconds
[2025-04-30 21:10:29.336 +00:00] [INF] [15] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Clean up collections and playlists" Completed after 0 minute(s) and 0 seconds
[2025-04-30 21:10:31.302 +00:00] [INF] [15] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Update Plugins" Completed after 0 minute(s) and 1 seconds
[2025-04-30 21:10:33.817 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: "/usr/lib/jellyfin-ffmpeg/ffmpeg"
[2025-04-30 21:10:33.818 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: ServerId: "c593ca14aa124e52aa3da7832b424c1e"
[2025-04-30 21:10:33.818 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Core startup complete
[2025-04-30 21:10:33.818 +00:00] [INF] [1] Main: Startup complete 0:00:10.1027915
[2025-04-30 21:11:04.683 +00:00] [INF] [18] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "178.176.78.245" request
[2025-04-30 21:11:29.758 +00:00] [INF] [18] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "root". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2025-04-30 21:11:30.527 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G  -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 0 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\""
[2025-04-30 21:11:38.888 +00:00] [INF] [10] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8"
[2025-04-30 21:11:39.642 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2025-04-30 21:11:39.645 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:15.000 -noaccurate_seek  -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 25 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\""
[2025-04-30 21:11:49.035 +00:00] [INF] [16] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2025-04-30 21:11:49.484 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:36.000 -noaccurate_seek  -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 32 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\""
[2025-04-30 21:11:51.858 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2025-04-30 21:11:52.237 +00:00] [INF] [16] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:42.000 -noaccurate_seek  -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 34 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\""
[2025-04-30 21:11:54.562 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2025-04-30 21:11:54.874 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:48.000 -noaccurate_seek  -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 36 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\""
[2025-04-30 21:11:57.216 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2025-04-30 21:12:13.305 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8"
[2025-04-30 21:12:14.826 +00:00] [INF] [10] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Android" "2.6.2" playing "Pure Pure Pleiades 2 - Play 11: A Dangerous One". Stopped at "109002" ms
[2025-04-30 21:13:52.639 +00:00] [INF] [3] Emby.Server.Implementations.Session.SessionManager: Sending shutdown notifications

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

Full GDrive folder link: https://drive.google.com/drive/folders/15382dd89O4Q11XCPBGs9CY3O1qR0iTUQ?usp=drive_link

Screen_Recording_20250501_001215_Jellyfin.mp4

Additional information

ffprobe log:

I also rise test server for this issue.
Feel free to use it for debug propose, there are no any sensitive data.

Address: http://84.201.146.155/
Login: root
Password: rfrjq-nj gfhjkm

Originally created by @Victor-Y-Fadeev on GitHub (May 1, 2025). ### Description of the bug When I play media with the different length of video, audio or subtitles I got loops at the end of file. Bug occures on Android phone and Android TV, but I can not guarantee it's reprodusion in browser. I got two examples for this bug reprodution. --- The common one is single `*.mkv` with one video, two audio and two subtitles streams. The last subtitle duration is loger than video and the empty segments filled with repetitions of the end of the video and audio stream. Duration of streams: - Video: `00:01:32.092000000` - Audio: `00:01:32.138000000` (AniLibria) - Audio: `00:01:32.090000000` - Subtitle: `00:00:29.490000000` (AniLibria [Надписи]) - Subtitle: `00:01:50.120000000` (AniLibria [Полные]) GDrive links: - [`/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.mkv`](https://drive.google.com/file/d/1WJnHyqB6xIoW1czTuIH863SPSsZji72p/view?usp=drive_link) --- The next one contain: - `*.mkv` with one video, two audio and two subtitles - one `*.mka` external audio - one `*.srt` external subtitle It's "harder" to reproduce because of file duration. You need to play/cache the whole file to catch the repetitions of external audio at the end of file. If I play the end of file I cannot catch the but with loops. Duration of files: - `*.mka`: `00:24:37.84` (all) - `*.mka`: `00:24:28.03` - `*.srt`: `N/A` GDrive links: - [`/data/series/anime/Chobits (2002) [tvdbid-72070]/Season 01/s01e06 Chi Weakens.mkv`](https://drive.google.com/file/d/1UooHmBjzfMg66sTICQ_czczI8lak4set/view?usp=drive_link) - [`/data/series/anime/Chobits (2002) [tvdbid-72070]/Season 01/s01e06 Chi Weakens.mka`](https://drive.google.com/file/d/1JbHJZn50Fsgrv5QQ3ZQQjXPn6KexHlQT/view?usp=drive_link) - [`/data/series/anime/Chobits (2002) [tvdbid-72070]/Season 01/s01e06 Chi Weakens.srt`](https://drive.google.com/file/d/1qZxlZ2uWrjcLEQ7rDDfG3aGsVzHvIHce/view?usp=drive_link) ### Reproduction steps 1. Setup Jellyfin server 2. Add `TV Shows` media library `/data/series/anime` with files from GDrive: - [`/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.mkv`](https://drive.google.com/file/d/1WJnHyqB6xIoW1czTuIH863SPSsZji72p/view?usp=drive_link) - [`/data/series/anime/Chobits (2002) [tvdbid-72070]/Season 01/s01e06 Chi Weakens.mkv`](https://drive.google.com/file/d/1UooHmBjzfMg66sTICQ_czczI8lak4set/view?usp=drive_link) - [`/data/series/anime/Chobits (2002) [tvdbid-72070]/Season 01/s01e06 Chi Weakens.mka`](https://drive.google.com/file/d/1JbHJZn50Fsgrv5QQ3ZQQjXPn6KexHlQT/view?usp=drive_link) - [`/data/series/anime/Chobits (2002) [tvdbid-72070]/Season 01/s01e06 Chi Weakens.srt`](https://drive.google.com/file/d/1qZxlZ2uWrjcLEQ7rDDfG3aGsVzHvIHce/view?usp=drive_link) 3. Run media: - `Pure Pure Pleiades 2 - Play 11 - A Dangerous One` - with `AniLibria` audio - `Chi Weakens` - with external audio 4. At the end of file loops occurs for Android applications ### What is the current _bug_ behavior? If subtitles longer than video then video and audio will be looped to fill the missing segment at the end of file. If audio shorter than video then the end of audio will be repeated after end until the end of video stream. ### What is the expected _correct_ behavior? Play shoub be stopped after video end. Don't continue or repeating anythin if video stream ends. For example [MPV](https://mpv.io/) player do this. If audio ends before video then there shoud be silense til the end of video stream. Don't switch to another audio or repeats of this one. ### Jellyfin Server version 10.10.0+ ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number _No response_ ### Specify the build version 10.10.7 ### Environment ```markdown - OS: Ubuntu - Linux Kernel: 6.8.0 - Virtualization: Docker - Clients: Android - Browser: Edge 135.0.3179.98 - FFmpeg Version: - Playback Method: - Hardware Acceleration: none - GPU Model: none - Plugins: TheTVDB - Reverse Proxy: none - Base URL: none - Networking: Host, NAT - Storage: local, cloud ``` ### Jellyfin logs ```shell [2025-04-30 21:10:23.863 +00:00] [INF] [1] Main: Jellyfin version: "10.10.7" [2025-04-30 21:10:23.882 +00:00] [INF] [1] Main: Environment Variables: ["[JELLYFIN_CONFIG_DIR, /config/config]", "[JELLYFIN_FFMPEG, /usr/lib/jellyfin-ffmpeg/ffmpeg]", "[JELLYFIN_DATA_DIR, /config]", "[JELLYFIN_WEB_DIR, /jellyfin/jellyfin-web]", "[JELLYFIN_LOG_DIR, /config/log]", "[JELLYFIN_CACHE_DIR, /cache]"] [2025-04-30 21:10:23.885 +00:00] [INF] [1] Main: Arguments: ["/jellyfin/jellyfin.dll"] [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Operating system: "Debian GNU/Linux 12 (bookworm)" [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Architecture: X64 [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: 64-Bit Process: True [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: User Interactive: True [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Processor count: 2 [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Program data path: "/config" [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Log directory path: "/config/log" [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Config directory path: "/config/config" [2025-04-30 21:10:23.886 +00:00] [INF] [1] Main: Cache path: "/cache" [2025-04-30 21:10:23.887 +00:00] [INF] [1] Main: Temp directory path: "/tmp/jellyfin" [2025-04-30 21:10:23.887 +00:00] [INF] [1] Main: Web resources path: "/jellyfin/jellyfin-web" [2025-04-30 21:10:23.887 +00:00] [INF] [1] Main: Application directory: "/jellyfin/" [2025-04-30 21:10:24.011 +00:00] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/cache" [2025-04-30 21:10:24.074 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies [2025-04-30 21:10:24.093 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "Jellyfin.Plugin.Tvdb, Version=19.0.0.0, Culture=neutral, PublicKeyToken=null" from "/config/plugins/TheTVDB_19.0.0.0/Jellyfin.Plugin.Tvdb.dll" [2025-04-30 21:10:24.100 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "Tvdb.Sdk, Version=4.7.10.0, Culture=neutral, PublicKeyToken=null" from "/config/plugins/TheTVDB_19.0.0.0/Tvdb.Sdk.dll" [2025-04-30 21:10:24.156 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] [2025-04-30 21:10:24.156 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: [] [2025-04-30 21:10:24.156 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] [2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["127.0.0.1", "172.18.0.2"] [2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["0.0.0.0"] [2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is "Allowlist" [2025-04-30 21:10:24.158 +00:00] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: [] [2025-04-30 21:10:25.610 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TheTVDB" "19.0.0.0" [2025-04-30 21:10:25.611 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TMDb" "10.10.7.0" [2025-04-30 21:10:25.612 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "Studio Images" "10.10.7.0" [2025-04-30 21:10:25.612 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "OMDb" "10.10.7.0" [2025-04-30 21:10:25.631 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "MusicBrainz" "10.10.7.0" [2025-04-30 21:10:25.631 +00:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "AudioDB" "10.10.7.0" [2025-04-30 21:10:25.734 +00:00] [INF] [1] Main: Kestrel is listening on "0.0.0.0" [2025-04-30 21:10:25.751 +00:00] [WRN] [1] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: No XML encryptor configured. Key {83433a71-8bc9-4ba7-9b38-eda2d8873b00} may be persisted to storage in unencrypted form. [2025-04-30 21:10:26.249 +00:00] [WRN] [1] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: "/wwwroot". Static files may be unavailable. [2025-04-30 21:10:26.282 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Running startup tasks [2025-04-30 21:10:26.284 +00:00] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory "/data/series/anime" [2025-04-30 21:10:26.295 +00:00] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Generate Trickplay Images" set to fire at 2025-05-01 03:00:00.000 +00:00, which is 05:49:33.7042677 from now. [2025-04-30 21:10:26.306 +00:00] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Extract Chapter Images" set to fire at 2025-05-01 02:00:00.000 +00:00, which is 04:49:33.6938152 from now. [2025-04-30 21:10:26.368 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version "7.0.2" [2025-04-30 21:10:26.418 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available "decoders": ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "ac4", "dca", "flac", "mp3", "truehd"] [2025-04-30 21:10:26.435 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available "encoders": ["libsvtav1", "av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi", "libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mjpeg_qsv", "mjpeg_vaapi", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"] [2025-04-30 21:10:26.461 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["bwdif_cuda", "deinterlace_qsv", "deinterlace_vaapi", "flip_vulkan", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "scale_vulkan", "tonemapx", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "transpose_cuda", "transpose_opencl", "transpose_vaapi", "transpose_vulkan", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"] [2025-04-30 21:10:26.584 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan"] [2025-04-30 21:10:29.332 +00:00] [INF] [8] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Clean Transcode Directory" Completed after 0 minute(s) and 0 seconds [2025-04-30 21:10:29.336 +00:00] [INF] [15] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Clean up collections and playlists" Completed after 0 minute(s) and 0 seconds [2025-04-30 21:10:31.302 +00:00] [INF] [15] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Update Plugins" Completed after 0 minute(s) and 1 seconds [2025-04-30 21:10:33.817 +00:00] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: "/usr/lib/jellyfin-ffmpeg/ffmpeg" [2025-04-30 21:10:33.818 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: ServerId: "c593ca14aa124e52aa3da7832b424c1e" [2025-04-30 21:10:33.818 +00:00] [INF] [1] Emby.Server.Implementations.ApplicationHost: Core startup complete [2025-04-30 21:10:33.818 +00:00] [INF] [1] Main: Startup complete 0:00:10.1027915 [2025-04-30 21:11:04.683 +00:00] [INF] [18] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "178.176.78.245" request [2025-04-30 21:11:29.758 +00:00] [INF] [18] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "root". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2025-04-30 21:11:30.527 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 0 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\"" [2025-04-30 21:11:38.888 +00:00] [INF] [10] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8" [2025-04-30 21:11:39.642 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0 [2025-04-30 21:11:39.645 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:15.000 -noaccurate_seek -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 25 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\"" [2025-04-30 21:11:49.035 +00:00] [INF] [16] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0 [2025-04-30 21:11:49.484 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:36.000 -noaccurate_seek -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 32 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\"" [2025-04-30 21:11:51.858 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0 [2025-04-30 21:11:52.237 +00:00] [INF] [16] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:42.000 -noaccurate_seek -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 34 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\"" [2025-04-30 21:11:54.562 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0 [2025-04-30 21:11:54.874 +00:00] [INF] [10] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:01:48.000 -noaccurate_seek -i file:\"/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.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 23 -maxrate 7713823 -bufsize 15427646 -profile:v:0 high -level 41 -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 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"19465ce2891003bdc8cf928c8200665b-1.mp4\" -start_number 36 -hls_segment_filename \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8\"" [2025-04-30 21:11:57.216 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0 [2025-04-30 21:12:13.305 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/cache/transcodes/19465ce2891003bdc8cf928c8200665b.m3u8" [2025-04-30 21:12:14.826 +00:00] [INF] [10] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Android" "2.6.2" playing "Pure Pure Pleiades 2 - Play 11: A Dangerous One". Stopped at "109002" ms [2025-04-30 21:13:52.639 +00:00] [INF] [3] Emby.Server.Implementations.Session.SessionManager: Sending shutdown notifications ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos Full GDrive folder link: https://drive.google.com/drive/folders/15382dd89O4Q11XCPBGs9CY3O1qR0iTUQ?usp=drive_link - [FFmpeg.Transcode-2025-04-30_21-11-54_c615c686a6d0354c4ae6ba2c62e90a07_b9d83208.log](https://github.com/user-attachments/files/19985054/FFmpeg.Transcode-2025-04-30_21-11-54_c615c686a6d0354c4ae6ba2c62e90a07_b9d83208.log) - [FFmpeg.Transcode-2025-04-30_21-11-52_c615c686a6d0354c4ae6ba2c62e90a07_c849c163.log](https://github.com/user-attachments/files/19985064/FFmpeg.Transcode-2025-04-30_21-11-52_c615c686a6d0354c4ae6ba2c62e90a07_c849c163.log) - [FFmpeg.Transcode-2025-04-30_21-11-49_c615c686a6d0354c4ae6ba2c62e90a07_ebf2d60a.log](https://github.com/user-attachments/files/19985066/FFmpeg.Transcode-2025-04-30_21-11-49_c615c686a6d0354c4ae6ba2c62e90a07_ebf2d60a.log) - [FFmpeg.Transcode-2025-04-30_21-11-39_c615c686a6d0354c4ae6ba2c62e90a07_0ec2c63c.log](https://github.com/user-attachments/files/19985067/FFmpeg.Transcode-2025-04-30_21-11-39_c615c686a6d0354c4ae6ba2c62e90a07_0ec2c63c.log) - [FFmpeg.Transcode-2025-04-30_21-11-30_c615c686a6d0354c4ae6ba2c62e90a07_35d2a5e0.log](https://github.com/user-attachments/files/19985065/FFmpeg.Transcode-2025-04-30_21-11-30_c615c686a6d0354c4ae6ba2c62e90a07_35d2a5e0.log) [Screen_Recording_20250501_001215_Jellyfin.mp4](https://github.com/user-attachments/assets/416fe475-43d4-49ba-8aa2-840bbf5dcd5c) ### Additional information ffprobe log: - [s01e06 Chi Weakens.srt.log](https://github.com/user-attachments/files/19985070/s01e06.Chi.Weakens.srt.log) - [s01e06 Chi Weakens.mkv.log](https://github.com/user-attachments/files/19985071/s01e06.Chi.Weakens.mkv.log) - [s01e06 Chi Weakens.mka.log](https://github.com/user-attachments/files/19985072/s01e06.Chi.Weakens.mka.log) - [s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.mkv.log](https://github.com/user-attachments/files/19985069/s00e26.Pure.Pure.Pleiades.2.-.Play.11.-.A.Dangerous.One.mkv.log) I also rise test server for this issue. Feel free to use it for debug propose, there are no any sensitive data. Address: http://84.201.146.155/ Login: `root` Password: `rfrjq-nj gfhjkm`
OVERLORD added the bugstale labels 2026-02-07 04:21:29 +03:00
Author
Owner

@Victor-Y-Fadeev commented on GitHub (May 1, 2025):

Android application version 2.6.2

@Victor-Y-Fadeev commented on GitHub (May 1, 2025): Android application version 2.6.2
Author
Owner

@Victor-Y-Fadeev commented on GitHub (May 1, 2025):

You can also just unpack my jellyfin.tar.gz and run:

$ docker compose up -d

My Docker file:

name: server

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    restart: unless-stopped
    volumes:
      - ./config/jellyfin:/config
      - ./data:/data
    ports:
      - 80:8096
      - 443:8920
@Victor-Y-Fadeev commented on GitHub (May 1, 2025): You can also just unpack my [jellyfin.tar.gz](https://drive.google.com/file/d/1v8fT8uG3CfEWC0vLjf_5_g8wwAklp-P7/view?usp=drive_link) and run: ```shell $ docker compose up -d ``` My Docker file: ``` name: server services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin restart: unless-stopped volumes: - ./config/jellyfin:/config - ./data:/data ports: - 80:8096 - 443:8920 ```
Author
Owner

@Tardo commented on GitHub (May 8, 2025):

Same bug here... browser. I haven't checked if the reason matches, but the playback goes into a strange loop. It usually happens towards the end, but not always...
Next time I experience this, I'll try to debug it and provide more information...

@Tardo commented on GitHub (May 8, 2025): Same bug here... browser. I haven't checked if the reason matches, but the playback goes into a strange loop. It usually happens towards the end, but not always... Next time I experience this, I'll try to debug it and provide more information...
Author
Owner

@Victor-Y-Fadeev commented on GitHub (Jul 16, 2025):

This bug isn't clear to reproduce in browser, because not the all browsers support mkv container and H.265 codec.
If browser don't support this then server transcode media to H.264 and bud disappear.

To clear reproduce the bug is better to use Android application.
This way lead to 100% reproduction of bug for file /data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.mkv

How can I help for better approving the bug?

@Victor-Y-Fadeev commented on GitHub (Jul 16, 2025): This bug isn't clear to reproduce in browser, because not the all browsers support mkv container and H.265 codec. If browser don't support this then server transcode media to H.264 and bud disappear. To clear reproduce the bug is better to use Android application. This way lead to 100% reproduction of bug for file [/data/series/anime/Overlord (2015) [tvdbid-294002]/Specials/s00e26 Pure Pure Pleiades 2 - Play 11 - A Dangerous One.mkv](https://drive.google.com/file/d/1WJnHyqB6xIoW1czTuIH863SPSsZji72p/view?usp=drive_link) How can I help for better approving the bug?
Author
Owner

@Victor-Y-Fadeev commented on GitHub (Jul 17, 2025):

@felix920506 Why this labelled as Wrong Repo?
As I understand, the bug on the server side because if browser support *.mkv + H.265 it reproduces by the same way as for application.

@Victor-Y-Fadeev commented on GitHub (Jul 17, 2025): @felix920506 Why this labelled as `Wrong Repo`? As I understand, the bug on the server side because if browser support `*.mkv` + H.265 it reproduces by the same way as for application.
Author
Owner

@felix920506 commented on GitHub (Jul 17, 2025):

This bug isn't clear to reproduce in browser, because not the all browsers support mkv container and H.265 codec.

Your bug report clearly implies that it is direct playing. In this case, the source file is sent in its entirety to the client and whatever playback issue that arises is going to be entirely on the client.

@felix920506 commented on GitHub (Jul 17, 2025): > This bug isn't clear to reproduce in browser, because not the all browsers support mkv container and H.265 codec. Your bug report clearly implies that it is direct playing. In this case, the source file is sent in its entirety to the client and whatever playback issue that arises is going to be entirely on the client.
Author
Owner

@Victor-Y-Fadeev commented on GitHub (Jul 17, 2025):

Your bug report clearly implies that it is direct playing. In this case, the source file is sent in its entirety to the client and whatever playback issue that arises is going to be entirely on the client.

So, then I need to move this issue to jellyfin/jellyfin-android and jellyfin/jellyfin-androidtv repos?

@Victor-Y-Fadeev commented on GitHub (Jul 17, 2025): > Your bug report clearly implies that it is direct playing. In this case, the source file is sent in its entirety to the client and whatever playback issue that arises is going to be entirely on the client. So, then I need to move this issue to [jellyfin/jellyfin-android](https://github.com/jellyfin/jellyfin-android) and [jellyfin/jellyfin-androidtv](https://github.com/jellyfin/jellyfin-androidtv) repos?
Author
Owner

@gregersn commented on GitHub (Jul 18, 2025):

I sometimes experience loops at the end of play as well. In Firefox on Linux (desktop). I haven't been a ble to consistently reproduce it, though. So not sure if it is the same issue.

@gregersn commented on GitHub (Jul 18, 2025): I sometimes experience loops at the end of play as well. In Firefox on Linux (desktop). I haven't been a ble to consistently reproduce it, though. So not sure if it is the same issue.
Author
Owner

@Victor-Y-Fadeev commented on GitHub (Jul 18, 2025):

@gregersn Try to use Application with the test server in the end of this issue description - http://84.201.146.155/

I reproduce bug in Microsoft Edge browse because it completely supports *.mkv + H.265.
But I cannot clear reproduce it in Chrome or Firefox.
Better way is to use android app for phone or tv.

@Victor-Y-Fadeev commented on GitHub (Jul 18, 2025): @gregersn Try to use Application with the test server in the end of this issue description - http://84.201.146.155/ I reproduce bug in Microsoft Edge browse because it completely supports `*.mkv` + H.265. But I cannot clear reproduce it in Chrome or Firefox. Better way is to use android app for phone or tv.
Author
Owner

@jellyfin-bot commented on GitHub (Nov 16, 2025):

This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs.

If you have any questions you can use one of several ways to contact us.

@jellyfin-bot commented on GitHub (Nov 16, 2025): This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs. If you have any questions you can use one of several ways to [contact us](https://jellyfin.org/contact).
Author
Owner

@jellyfin-bot commented on GitHub (Dec 7, 2025):

This issue was closed due to inactivity.

@jellyfin-bot commented on GitHub (Dec 7, 2025): This issue was closed due to inactivity.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#6980