Jellyfin Not Detecting Subtitle Merged With MKVToolNix #7242

Open
opened 2025-12-22 05:26:54 +01:00 by backuprepo · 3 comments
Owner

Originally created by @DarkCTO on GitHub (Aug 10, 2025).

Description of the bug

Subtitle merged with MKVToolNix is not shown in JellyFin player to select.
Embedded subtitle from yt-dlp produces video that JellyFin can detect subtitles.
Goal: figure out why JellyFin cannot find subtitle of BadSub.mkv

NoSub:

Image

GoodSub:

Image

BadSub:

Image

Reproduction steps

No Sub:
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -o "NoSub.mkv" --write-subs --merge-output-format mkv https://www.youtube.com/watch?v=dC6ZGLzdaTs

Just The Sub (generate NoSub.mkv.de.vtt):
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -o "NoSub.mkv" --write-subs --skip-download https://www.youtube.com/watch?v=dC6ZGLzdaTs

BadSub:
mkvmerge mkvmerge -o BadSub.mkv NoSub.mkv NoSub.mkv.de.vtt

Good Sub:
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -o "GoodSub.mkv" --write-subs --embed-subs --merge-output-format mkv https://www.youtube.com/watch?v=dC6ZGLzdaTs

What is the current bug behavior?

Player not shown subtitle selection for BadSub.mkv but shown for GoodSub.mkv

What is the expected correct behavior?

JellyFin should detect subtitles in BadSub.mkv
Or support MKVToolNix outputs.

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: EndeavourOS
- Linux Kernel: Linux 7i 6.15.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 17 Jul 2025 21:05:29 +0000 x86_64 GNU/Linux
- Virtualization: 
- Clients:
- Browser:
- FFmpeg Version: n7.1.1
- Playback Method: Web, Desktop, Phone
- Hardware Acceleration:
- GPU Model: 3080 NVIDIA
- Plugins:
- Reverse Proxy: Yes, nginx
- Base URL: /jellyfin/
- Networking: 
- Jellyfin Data Storage:
- Media Storage: HDD, mounted /media/, read-only
- External Integrations:

Jellyfin logs

{"Protocol":0,"Id":"867428477ff10742b8ec231ae7256b62","Path":"/media/AL_MEDIA_C/Tubes/Music Videos/Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1).mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":38766255,"Name":"Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1)","IsRemote":false,"ETag":"c15b4a47caa1dc4cb5e2b3285217475e","RunTimeTicks":3819000000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"UseMostCompatibleTranscodingProfile":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"h264","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":1,"VideoRangeType":1,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"480p H264 SDR","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"ChannelLayout":null,"BitRate":812071,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":480,"Width":854,"AverageFrameRate":24,"RealFrameRate":24,"ReferenceFrameRate":24,"Profile":"Main","Type":1,"AspectRatio":"16:9","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":30,"IsAnamorphic":false},{"Codec":"aac","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"AAC - Stereo - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"stereo","BitRate":112681,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":2,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":"LC","Type":0,"AspectRatio":null,"Index":1,"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":924752,"FallbackMaxStreamingBitrate":null,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null,"HasSegments":false}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts  -i file:"/media/AL_MEDIA_C/Tubes/Music Videos/Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1).mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "a85250c1583aae0e3c8b540e5367f540-1.mp4" -start_number 0 -hls_segment_filename "/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540.m3u8"


ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
  built with gcc 15.1.1 (GCC) 20250425
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libfontconfig --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libopenmpt --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --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
[matroska,webm @ 0x5583f2464e00] Unknown/unsupported AVCodecID S_TEXT/WEBVTT.
[matroska,webm @ 0x5583f2464e00] Could not find codec parameters for stream 2 (Subtitle: none): unknown codec
Consider increasing the value for the 'analyzeduration' (200000000) and 'probesize' (1000000000) options
Input #0, matroska,webm, from 'file:/media/AL_MEDIA_C/Tubes/Music Videos/Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1).mkv':
  Metadata:
    title           : Tool - The Pot HD (Unofficial Music Video) - https://archive.org/details/youtube_921OEmQfBMQ_640x360_vp9
    encoder         : libebml v1.4.5 + libmatroska v1.7.1
    creation_time   : 2025-08-10T19:53:04.000000Z
    MOVIE/ENCODER   : Lavf58.51.100
  Duration: 00:06:21.90, start: 0.000000, bitrate: 812 kb/s
  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 854x480 [SAR 1280:1281 DAR 16:9], SAR 853:854 DAR 853:480, 24 fps, 24 tbr, 1k tbn (default)
      Metadata:
        BPS             : 699580
        DURATION        : 00:06:20.667000000
        NUMBER_OF_FRAMES: 9136
        NUMBER_OF_BYTES : 33288410
        _STATISTICS_WRITING_APP: mkvmerge v91.0 ('Signs') 64-bit
        _STATISTICS_WRITING_DATE_UTC: 2025-08-10 19:53:04
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default)
      Metadata:
        BPS             : 112681
        DURATION        : 00:06:20.714000000
        NUMBER_OF_FRAMES: 17846
        NUMBER_OF_BYTES : 5362442
        _STATISTICS_WRITING_APP: mkvmerge v91.0 ('Signs') 64-bit
        _STATISTICS_WRITING_DATE_UTC: 2025-08-10 19:53:04
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:2: Subtitle: none (default)
      Metadata:
        BPS             : 34
        DURATION        : 00:06:18.300000000
        NUMBER_OF_FRAMES: 49
        NUMBER_OF_BYTES : 1628
        _STATISTICS_WRITING_APP: mkvmerge v91.0 ('Signs') 64-bit
        _STATISTICS_WRITING_DATE_UTC: 2025-08-10 19:53:04
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540-1.mp4' for writing
Output #0, hls, to '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540.m3u8':
  Metadata:
    encoder         : Lavf61.7.100
  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 854x480 [SAR 853:854 DAR 853:480], q=2-31, 24 fps, 24 tbr, 16k tbn (default)
  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Press [q] to stop, [?] for help
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5400.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5401.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5402.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5403.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5404.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5405.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5406.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5407.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5408.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 2756584 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5409.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 2895832 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54010.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 3260392 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54011.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54012.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54013.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54014.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54015.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54016.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54017.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54018.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54019.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54020.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54021.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54022.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54023.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54024.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54025.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54026.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54027.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54028.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54029.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54030.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54031.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54032.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54033.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54034.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54035.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54036.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 10915816 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54037.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54038.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 11477992 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54039.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54040.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54041.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54042.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54043.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54044.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54045.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 13466584 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54046.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54047.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54048.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54049.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54050.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54051.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 15458296 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54052.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54053.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54054.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54055.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54056.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 16728040 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54057.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54058.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54059.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54060.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54061.mp4' for writing
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54062.mp4' for writing
[mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 18184168 is out of range
[hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54063.mp4' for writing
[out#0/hls @ 0x5583f3c10b40] video:32512KiB audio:5237KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
frame= 9136 fps=0.0 q=-1.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Originally created by @DarkCTO on GitHub (Aug 10, 2025). ### Description of the bug Subtitle merged with MKVToolNix is not shown in JellyFin player to select. Embedded subtitle from yt-dlp produces video that JellyFin can detect subtitles. Goal: figure out why JellyFin cannot find subtitle of BadSub.mkv NoSub: <img width="1282" height="873" alt="Image" src="https://github.com/user-attachments/assets/409995b1-06d3-4f28-bf47-fc8bce9f9638" /> GoodSub: <img width="1283" height="873" alt="Image" src="https://github.com/user-attachments/assets/4b5fbfa6-b47c-461c-9f89-7b9b8edeeb1a" /> BadSub: <img width="1284" height="876" alt="Image" src="https://github.com/user-attachments/assets/a8489ee0-1672-4c7d-957a-8e5ff19d2dda" /> ### Reproduction steps No Sub: `yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -o "NoSub.mkv" --write-subs --merge-output-format mkv https://www.youtube.com/watch?v=dC6ZGLzdaTs` Just The Sub (generate NoSub.mkv.de.vtt): `yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -o "NoSub.mkv" --write-subs --skip-download https://www.youtube.com/watch?v=dC6ZGLzdaTs` BadSub: `mkvmerge mkvmerge -o BadSub.mkv NoSub.mkv NoSub.mkv.de.vtt` Good Sub: `yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -o "GoodSub.mkv" --write-subs --embed-subs --merge-output-format mkv https://www.youtube.com/watch?v=dC6ZGLzdaTs` ### What is the current _bug_ behavior? Player not shown subtitle selection for BadSub.mkv but shown for GoodSub.mkv ### What is the expected _correct_ behavior? JellyFin should detect subtitles in BadSub.mkv Or support MKVToolNix outputs. ### 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: EndeavourOS - Linux Kernel: Linux 7i 6.15.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 17 Jul 2025 21:05:29 +0000 x86_64 GNU/Linux - Virtualization: - Clients: - Browser: - FFmpeg Version: n7.1.1 - Playback Method: Web, Desktop, Phone - Hardware Acceleration: - GPU Model: 3080 NVIDIA - Plugins: - Reverse Proxy: Yes, nginx - Base URL: /jellyfin/ - Networking: - Jellyfin Data Storage: - Media Storage: HDD, mounted /media/, read-only - External Integrations: ``` ### Jellyfin logs ```shell {"Protocol":0,"Id":"867428477ff10742b8ec231ae7256b62","Path":"/media/AL_MEDIA_C/Tubes/Music Videos/Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1).mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":38766255,"Name":"Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1)","IsRemote":false,"ETag":"c15b4a47caa1dc4cb5e2b3285217475e","RunTimeTicks":3819000000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"UseMostCompatibleTranscodingProfile":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"h264","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":1,"VideoRangeType":1,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"480p H264 SDR","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"ChannelLayout":null,"BitRate":812071,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":480,"Width":854,"AverageFrameRate":24,"RealFrameRate":24,"ReferenceFrameRate":24,"Profile":"Main","Type":1,"AspectRatio":"16:9","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":30,"IsAnamorphic":false},{"Codec":"aac","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Default","LocalizedForced":null,"LocalizedExternal":"External","LocalizedHearingImpaired":null,"DisplayTitle":"AAC - Stereo - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"stereo","BitRate":112681,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":2,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":"LC","Type":0,"AspectRatio":null,"Index":1,"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":924752,"FallbackMaxStreamingBitrate":null,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null,"HasSegments":false} /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts -i file:"/media/AL_MEDIA_C/Tubes/Music Videos/Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1).mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "a85250c1583aae0e3c8b540e5367f540-1.mp4" -start_number 0 -hls_segment_filename "/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540.m3u8" ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers built with gcc 15.1.1 (GCC) 20250425 configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libfontconfig --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libopenmpt --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --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 [matroska,webm @ 0x5583f2464e00] Unknown/unsupported AVCodecID S_TEXT/WEBVTT. [matroska,webm @ 0x5583f2464e00] Could not find codec parameters for stream 2 (Subtitle: none): unknown codec Consider increasing the value for the 'analyzeduration' (200000000) and 'probesize' (1000000000) options Input #0, matroska,webm, from 'file:/media/AL_MEDIA_C/Tubes/Music Videos/Tool - The Pot HD (Unofficial Music Video) - https:-archive.org-details-youtube_921OEmQfBMQ_640x360_vp9 (1).mkv': Metadata: title : Tool - The Pot HD (Unofficial Music Video) - https://archive.org/details/youtube_921OEmQfBMQ_640x360_vp9 encoder : libebml v1.4.5 + libmatroska v1.7.1 creation_time : 2025-08-10T19:53:04.000000Z MOVIE/ENCODER : Lavf58.51.100 Duration: 00:06:21.90, start: 0.000000, bitrate: 812 kb/s Stream #0:0: Video: h264 (Main), yuv420p(progressive), 854x480 [SAR 1280:1281 DAR 16:9], SAR 853:854 DAR 853:480, 24 fps, 24 tbr, 1k tbn (default) Metadata: BPS : 699580 DURATION : 00:06:20.667000000 NUMBER_OF_FRAMES: 9136 NUMBER_OF_BYTES : 33288410 _STATISTICS_WRITING_APP: mkvmerge v91.0 ('Signs') 64-bit _STATISTICS_WRITING_DATE_UTC: 2025-08-10 19:53:04 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default) Metadata: BPS : 112681 DURATION : 00:06:20.714000000 NUMBER_OF_FRAMES: 17846 NUMBER_OF_BYTES : 5362442 _STATISTICS_WRITING_APP: mkvmerge v91.0 ('Signs') 64-bit _STATISTICS_WRITING_DATE_UTC: 2025-08-10 19:53:04 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2: Subtitle: none (default) Metadata: BPS : 34 DURATION : 00:06:18.300000000 NUMBER_OF_FRAMES: 49 NUMBER_OF_BYTES : 1628 _STATISTICS_WRITING_APP: mkvmerge v91.0 ('Signs') 64-bit _STATISTICS_WRITING_DATE_UTC: 2025-08-10 19:53:04 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540-1.mp4' for writing Output #0, hls, to '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f540.m3u8': Metadata: encoder : Lavf61.7.100 Stream #0:0: Video: h264 (Main), yuv420p(progressive), 854x480 [SAR 853:854 DAR 853:480], q=2-31, 24 fps, 24 tbr, 16k tbn (default) Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default) Press [q] to stop, [?] for help [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5400.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5401.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5402.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5403.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5404.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5405.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5406.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5407.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5408.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 2756584 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f5409.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 2895832 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54010.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 3260392 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54011.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54012.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54013.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54014.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54015.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54016.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54017.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54018.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54019.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54020.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54021.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54022.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54023.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54024.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54025.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54026.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54027.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54028.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54029.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54030.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54031.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54032.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54033.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54034.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54035.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54036.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 10915816 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54037.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54038.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 11477992 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54039.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54040.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54041.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54042.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54043.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54044.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54045.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 13466584 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54046.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54047.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54048.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54049.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54050.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54051.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 15458296 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54052.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54053.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54054.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54055.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54056.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 16728040 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54057.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54058.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54059.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54060.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54061.mp4' for writing [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54062.mp4' for writing [mp4 @ 0x5583f2494540] Packet duration: -32 / dts: 18184168 is out of range [hls @ 0x5583f2490e40] Opening '/var/cache/jellyfin/transcodes/a85250c1583aae0e3c8b540e5367f54063.mp4' for writing [out#0/hls @ 0x5583f3c10b40] video:32512KiB audio:5237KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown frame= 9136 fps=0.0 q=-1.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information _No response_
backuprepo added the
stale
bug
labels 2025-12-22 05:26:54 +01:00
Author
Owner

@DarkCTO commented on GitHub (Aug 10, 2025):

Android client also not detecting merged sub, even with GoodSub.mkv

@DarkCTO commented on GitHub (Aug 10, 2025): Android client also not detecting merged sub, even with GoodSub.mkv
Author
Owner

@DarkCTO commented on GitHub (Aug 10, 2025):

Okay, this boils down to JellyFin not supporting VTT properly.
Converted VTT to SRT, used MKVToolNix and it shows subtitle on all clients.

yt-dlp -f best --embed-subs --convert-subs srt -o "%(title)s.%(ext)s" <video_url>

@DarkCTO commented on GitHub (Aug 10, 2025): Okay, this boils down to JellyFin not supporting VTT properly. Converted VTT to SRT, used MKVToolNix and it shows subtitle on all clients. `yt-dlp -f best --embed-subs --convert-subs srt -o "%(title)s.%(ext)s" <video_url>`
Author
Owner

@jellyfin-bot commented on GitHub (Dec 9, 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 (Dec 9, 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).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#7242
No description provided.