Issue with Jellyfin on LG55C6V: Remuxing Instead of Direct Play #6852

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

Originally created by @kitopopo on GitHub (Mar 27, 2025).

Description of the bug

Hi dear friends,

I have an LG 55C6V with webOS 3.4.2-610708, and the webOS APK version is 1.2.2. Jellyfin performs remuxing (container conversion) on most movies, even when the TV supports the video and audio formats.

Observed Behavior:
Jellyfin converts most movies to HLS, even if the original file is MKV.

Plex plays movies in "Direct Play" mode without remuxing or transcoding on the same TV.

When played from a USB drive, the TV handles all files without issues (MKV, H264, H265, DTS, AC3, etc.).

On a newer LG TV, Jellyfin performs "Direct Play" without remuxing or transcoding.

Disabling remuxing in Jellyfin causes playback to fail on this TV.

Changing client settings has not resolved the issue.

I have disabled the video and audio transcoding options because if I don’t, Jellyfin transcodes the movie, which I do not want. However, it still performs remuxing.

In the log appears: "SupportsDirectStream":true

Playback Issue:
Initially, the movie starts in "Direct Play" mode for about 10 seconds, but after those 10 seconds, Jellyfin begins performing remuxing.

Suggestion:
Perhaps if they added an option to force direct playback or a way to configure my TV model in the server settings to detect that it can perform direct playback, it would be useful.

Request for Help:
I hope you can help me find the issue. If you need any additional data or logs from movies that are played without remuxing, I can provide them, but as mentioned, most movies are the ones that perform remuxing.

Thanks for this amazing project and for maintaining it, as it is exceptional. Best regards and thank you.

Reproduction steps

Install Jellyfin server and client on the LG TV with webOS 3.4.2-610708.

Add a movie in MKV format with compatible video and audio codecs (e.g., H264, AC3, DTS).

Play the movie through Jellyfin.

Observe that the movie initially plays in "Direct Play" mode for about 10 seconds.

After 10 seconds, Jellyfin switches to remuxing, even though the TV supports the video and audio formats natively.

Notice that playback continues with remuxing and no longer remains in "Direct Play."

What is the current bug behavior?

Jellyfin remuxes most movies to HLS format, even if the original file is an MKV with supported video and audio formats (such as H264, H265, DTS, AC3).

Despite the TV being capable of handling these formats natively, Jellyfin still switches to remuxing after initially playing in "Direct Play" mode for about 10 seconds.

This behavior occurs even when transcoding and remuxing settings are disabled in Jellyfin, and playback from a USB drive works fine without any remuxing.

What is the expected correct behavior?

Jellyfin should play the movies directly without remuxing or transcoding, as the TV supports the video and audio formats (such as H264, H265, DTS, AC3) natively.

The movie should start in "Direct Play" mode and remain in that mode without switching to remuxing.

Jellyfin should detect that the TV can handle the formats properly and not perform unnecessary remuxing or transcoding.

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.6

Environment

WebOs: 3.4.2-610708
Hardware Acceleration: disabled in the user
APK LG version: 1.2.2

Jellyfin logs

{"Protocol":0,"Id":"xxxxx","Path":"/xxx/xx/xx/xxxx.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":xxxxxx,"Name":"xxx","IsRemote":false,"ETag":"xxxxxxxxxxxxx","RunTimeTicks":63374150000,"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":"spa","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":"1080p H264 SDR","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"ChannelLayout":null,"BitRate":15943460,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":800,"Width":1920,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"ReferenceFrameRate":23.976025,"Profile":"High","Type":1,"AspectRatio":"2.40:1","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":41,"IsAnamorphic":false},{"Codec":"eac3","CodecTag":null,"Language":"spa","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":"Predeterminado","LocalizedForced":null,"LocalizedExternal":"Externo","LocalizedHearingImpaired":null,"DisplayTitle":"Spanish - Dolby Digital\u002B - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"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},{"Codec":"ac3","CodecTag":null,"Language":"spa","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":"Predeterminado","LocalizedForced":null,"LocalizedExternal":"Externo","LocalizedHearingImpaired":null,"DisplayTitle":"Spanish - Dolby Digital - 5.1 - Predeterminado","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"ac3","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Predeterminado","LocalizedForced":null,"LocalizedExternal":"Externo","LocalizedHearingImpaired":null,"DisplayTitle":"English - Dolby Digital - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":3,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"spa","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":"Indefinido","LocalizedDefault":"Predeterminado","LocalizedForced":"Forzado","LocalizedExternal":"Externo","LocalizedHearingImpaired":"Discapacidad Auditiva","DisplayTitle":"Spanish - Predeterminado - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":4,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"spa","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":"Indefinido","LocalizedDefault":"Predeterminado","LocalizedForced":"Forzado","LocalizedExternal":"Externo","LocalizedHearingImpaired":"Discapacidad Auditiva","DisplayTitle":"Spanish - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":5,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Indefinido","LocalizedDefault":"Predeterminado","LocalizedForced":"Forzado","LocalizedExternal":"Externo","LocalizedHearingImpaired":"Discapacidad Auditiva","DisplayTitle":"English - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":6,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":17863460,"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:"/xxx/xxx/xxx/xxx.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -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 mpegts -start_number 0 -hls_segment_filename "/var/cache/jellyfin/transcodes/xxx.ts" -hls_playlist_type vod -hls_list_size 0 -y "/var/cache/jellyfin/transcodes/xxx.m3u8"

ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --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.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
Input #0, matroska,webm, from 'file:/xxx/xxx/xxx/xxx.mkv':
  Metadata:
    encoder         : libebml v1.3.4 + libmatroska v1.4.5
    creation_time   : 2024-12-25T23:11:21.000000Z
  Duration: 01:45:37.42, start: 0.000000, bitrate: 15943 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 950.867000
      Metadata:
        title           : Chapter 01
    Chapter #0:1: start 950.867000, end 1571.862000
      Metadata:
        title           : Chapter 02
    Chapter #0:2: start 1571.862000, end 2320.777000
      Metadata:
        title           : Chapter 03
    Chapter #0:3: start 2320.777000, end 3221.218000
      Metadata:
        title           : Chapter 04
    Chapter #0:4: start 3221.218000, end 3905.485000
      Metadata:
        title           : Chapter 05
    Chapter #0:5: start 3905.485000, end 4789.076000
      Metadata:
        title           : Chapter 06
    Chapter #0:6: start 4789.076000, end 5846.883000
      Metadata:
        title           : Chapter 07
    Chapter #0:7: start 5846.883000, end 6336.413000
      Metadata:
        title           : Chapter 08
    Chapter #0:8: start 6336.413000, end 6337.415000
      Metadata:
        title           : Chapter 09
  Stream #0:0(spa): Video: h264 (High), yuv420p(progressive), 1920x800 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn (default)
      Metadata:
        BPS             : 14020970
        BPS-eng         : 14020970
        DURATION        : 01:45:37.415000000
        DURATION-eng    : 01:45:37.415000000
        NUMBER_OF_FRAMES: 151946
        NUMBER_OF_FRAMES-eng: 151946
        NUMBER_OF_BYTES : 11107088352
        NUMBER_OF_BYTES-eng: 11107088352
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:1(spa): Audio: eac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
      Metadata:
        BPS             : 640000
        BPS-eng         : 640000
        DURATION        : 01:45:36.416000000
        DURATION-eng    : 01:45:36.416000000
        NUMBER_OF_FRAMES: 198013
        NUMBER_OF_FRAMES-eng: 198013
        NUMBER_OF_BYTES : 506913280
        NUMBER_OF_BYTES-eng: 506913280
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:2(spa): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
      Metadata:
        BPS             : 640000
        BPS-eng         : 640000
        DURATION        : 01:45:36.416000000
        DURATION-eng    : 01:45:36.416000000
        NUMBER_OF_FRAMES: 198013
        NUMBER_OF_FRAMES-eng: 198013
        NUMBER_OF_BYTES : 506913280
        NUMBER_OF_BYTES-eng: 506913280
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:3(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
      Metadata:
        BPS             : 640000
        BPS-eng         : 640000
        DURATION        : 01:45:36.416000000
        DURATION-eng    : 01:45:36.416000000
        NUMBER_OF_FRAMES: 198013
        NUMBER_OF_FRAMES-eng: 198013
        NUMBER_OF_BYTES : 506913280
        NUMBER_OF_BYTES-eng: 506913280
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:4(spa): Subtitle: subrip (srt) (default)
      Metadata:
        BPS             : 0
        BPS-eng         : 0
        DURATION        : 01:35:59.212000000
        DURATION-eng    : 01:35:59.212000000
        NUMBER_OF_FRAMES: 13
        NUMBER_OF_FRAMES-eng: 13
        NUMBER_OF_BYTES : 351
        NUMBER_OF_BYTES-eng: 351
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:5(spa): Subtitle: subrip (srt)
      Metadata:
        BPS             : 41
        BPS-eng         : 41
        DURATION        : 01:36:15.812000000
        DURATION-eng    : 01:36:15.812000000
        NUMBER_OF_FRAMES: 950
        NUMBER_OF_FRAMES-eng: 950
        NUMBER_OF_BYTES : 30189
        NUMBER_OF_BYTES-eng: 30189
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
  Stream #0:6(eng): Subtitle: subrip (srt)
      Metadata:
        BPS             : 43
        BPS-eng         : 43
        DURATION        : 01:36:08.901000000
        DURATION-eng    : 01:36:08.901000000
        NUMBER_OF_FRAMES: 1121
        NUMBER_OF_FRAMES-eng: 1121
        NUMBER_OF_BYTES : 31401
        NUMBER_OF_BYTES-eng: 31401
        _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit
        _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[out#0/hls @ 0x5a4e6d1421c0] Codec AVOption threads (set the number of threads) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:2 -> #0:1 (copy)
Output #0, hls, to '/var/cache/jellyfin/transcodes/xxx.m3u8':
  Metadata:
    encoder         : Lavf61.1.100
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x800 [SAR 1:1 DAR 12:5], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn (default)
  Stream #0:1: Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Originally created by @kitopopo on GitHub (Mar 27, 2025). ### Description of the bug Hi dear friends, I have an LG 55C6V with webOS 3.4.2-610708, and the webOS APK version is 1.2.2. Jellyfin performs remuxing (container conversion) on most movies, even when the TV supports the video and audio formats. Observed Behavior: Jellyfin converts most movies to HLS, even if the original file is MKV. Plex plays movies in "Direct Play" mode without remuxing or transcoding on the same TV. When played from a USB drive, the TV handles all files without issues (MKV, H264, H265, DTS, AC3, etc.). On a newer LG TV, Jellyfin performs "Direct Play" without remuxing or transcoding. Disabling remuxing in Jellyfin causes playback to fail on this TV. Changing client settings has not resolved the issue. I have disabled the video and audio transcoding options because if I don’t, Jellyfin transcodes the movie, which I do not want. However, it still performs remuxing. In the log appears: "SupportsDirectStream":true Playback Issue: Initially, the movie starts in "Direct Play" mode for about 10 seconds, but after those 10 seconds, Jellyfin begins performing remuxing. Suggestion: Perhaps if they added an option to force direct playback or a way to configure my TV model in the server settings to detect that it can perform direct playback, it would be useful. Request for Help: I hope you can help me find the issue. If you need any additional data or logs from movies that are played without remuxing, I can provide them, but as mentioned, most movies are the ones that perform remuxing. Thanks for this amazing project and for maintaining it, as it is exceptional. Best regards and thank you. ### Reproduction steps Install Jellyfin server and client on the LG TV with webOS 3.4.2-610708. Add a movie in MKV format with compatible video and audio codecs (e.g., H264, AC3, DTS). Play the movie through Jellyfin. Observe that the movie initially plays in "Direct Play" mode for about 10 seconds. After 10 seconds, Jellyfin switches to remuxing, even though the TV supports the video and audio formats natively. Notice that playback continues with remuxing and no longer remains in "Direct Play." ### What is the current _bug_ behavior? Jellyfin remuxes most movies to HLS format, even if the original file is an MKV with supported video and audio formats (such as H264, H265, DTS, AC3). Despite the TV being capable of handling these formats natively, Jellyfin still switches to remuxing after initially playing in "Direct Play" mode for about 10 seconds. This behavior occurs even when transcoding and remuxing settings are disabled in Jellyfin, and playback from a USB drive works fine without any remuxing. ### What is the expected _correct_ behavior? Jellyfin should play the movies directly without remuxing or transcoding, as the TV supports the video and audio formats (such as H264, H265, DTS, AC3) natively. The movie should start in "Direct Play" mode and remain in that mode without switching to remuxing. Jellyfin should detect that the TV can handle the formats properly and not perform unnecessary remuxing or transcoding. ### 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.6 ### Environment ```markdown WebOs: 3.4.2-610708 Hardware Acceleration: disabled in the user APK LG version: 1.2.2 ``` ### Jellyfin logs ```shell {"Protocol":0,"Id":"xxxxx","Path":"/xxx/xx/xx/xxxx.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":xxxxxx,"Name":"xxx","IsRemote":false,"ETag":"xxxxxxxxxxxxx","RunTimeTicks":63374150000,"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":"spa","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":"1080p H264 SDR","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"ChannelLayout":null,"BitRate":15943460,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":800,"Width":1920,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"ReferenceFrameRate":23.976025,"Profile":"High","Type":1,"AspectRatio":"2.40:1","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":41,"IsAnamorphic":false},{"Codec":"eac3","CodecTag":null,"Language":"spa","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":"Predeterminado","LocalizedForced":null,"LocalizedExternal":"Externo","LocalizedHearingImpaired":null,"DisplayTitle":"Spanish - Dolby Digital\u002B - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"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},{"Codec":"ac3","CodecTag":null,"Language":"spa","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":"Predeterminado","LocalizedForced":null,"LocalizedExternal":"Externo","LocalizedHearingImpaired":null,"DisplayTitle":"Spanish - Dolby Digital - 5.1 - Predeterminado","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"ac3","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Predeterminado","LocalizedForced":null,"LocalizedExternal":"Externo","LocalizedHearingImpaired":null,"DisplayTitle":"English - Dolby Digital - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":3,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"spa","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":"Indefinido","LocalizedDefault":"Predeterminado","LocalizedForced":"Forzado","LocalizedExternal":"Externo","LocalizedHearingImpaired":"Discapacidad Auditiva","DisplayTitle":"Spanish - Predeterminado - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":4,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"spa","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":"Indefinido","LocalizedDefault":"Predeterminado","LocalizedForced":"Forzado","LocalizedExternal":"Externo","LocalizedHearingImpaired":"Discapacidad Auditiva","DisplayTitle":"Spanish - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":5,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Rotation":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Indefinido","LocalizedDefault":"Predeterminado","LocalizedForced":"Forzado","LocalizedExternal":"Externo","LocalizedHearingImpaired":"Discapacidad Auditiva","DisplayTitle":"English - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"ReferenceFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":6,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":17863460,"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:"/xxx/xxx/xxx/xxx.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -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 mpegts -start_number 0 -hls_segment_filename "/var/cache/jellyfin/transcodes/xxx.ts" -hls_playlist_type vod -hls_list_size 0 -y "/var/cache/jellyfin/transcodes/xxx.m3u8" ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04) configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --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. 8.100 / 59. 8.100 libavcodec 61. 3.100 / 61. 3.100 libavformat 61. 1.100 / 61. 1.100 libavdevice 61. 1.100 / 61. 1.100 libavfilter 10. 1.100 / 10. 1.100 libswscale 8. 1.100 / 8. 1.100 libswresample 5. 1.100 / 5. 1.100 libpostproc 58. 1.100 / 58. 1.100 Input #0, matroska,webm, from 'file:/xxx/xxx/xxx/xxx.mkv': Metadata: encoder : libebml v1.3.4 + libmatroska v1.4.5 creation_time : 2024-12-25T23:11:21.000000Z Duration: 01:45:37.42, start: 0.000000, bitrate: 15943 kb/s Chapters: Chapter #0:0: start 0.000000, end 950.867000 Metadata: title : Chapter 01 Chapter #0:1: start 950.867000, end 1571.862000 Metadata: title : Chapter 02 Chapter #0:2: start 1571.862000, end 2320.777000 Metadata: title : Chapter 03 Chapter #0:3: start 2320.777000, end 3221.218000 Metadata: title : Chapter 04 Chapter #0:4: start 3221.218000, end 3905.485000 Metadata: title : Chapter 05 Chapter #0:5: start 3905.485000, end 4789.076000 Metadata: title : Chapter 06 Chapter #0:6: start 4789.076000, end 5846.883000 Metadata: title : Chapter 07 Chapter #0:7: start 5846.883000, end 6336.413000 Metadata: title : Chapter 08 Chapter #0:8: start 6336.413000, end 6337.415000 Metadata: title : Chapter 09 Stream #0:0(spa): Video: h264 (High), yuv420p(progressive), 1920x800 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn (default) Metadata: BPS : 14020970 BPS-eng : 14020970 DURATION : 01:45:37.415000000 DURATION-eng : 01:45:37.415000000 NUMBER_OF_FRAMES: 151946 NUMBER_OF_FRAMES-eng: 151946 NUMBER_OF_BYTES : 11107088352 NUMBER_OF_BYTES-eng: 11107088352 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1(spa): Audio: eac3, 48000 Hz, 5.1(side), fltp, 640 kb/s Metadata: BPS : 640000 BPS-eng : 640000 DURATION : 01:45:36.416000000 DURATION-eng : 01:45:36.416000000 NUMBER_OF_FRAMES: 198013 NUMBER_OF_FRAMES-eng: 198013 NUMBER_OF_BYTES : 506913280 NUMBER_OF_BYTES-eng: 506913280 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2(spa): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default) Metadata: BPS : 640000 BPS-eng : 640000 DURATION : 01:45:36.416000000 DURATION-eng : 01:45:36.416000000 NUMBER_OF_FRAMES: 198013 NUMBER_OF_FRAMES-eng: 198013 NUMBER_OF_BYTES : 506913280 NUMBER_OF_BYTES-eng: 506913280 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:3(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s Metadata: BPS : 640000 BPS-eng : 640000 DURATION : 01:45:36.416000000 DURATION-eng : 01:45:36.416000000 NUMBER_OF_FRAMES: 198013 NUMBER_OF_FRAMES-eng: 198013 NUMBER_OF_BYTES : 506913280 NUMBER_OF_BYTES-eng: 506913280 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:4(spa): Subtitle: subrip (srt) (default) Metadata: BPS : 0 BPS-eng : 0 DURATION : 01:35:59.212000000 DURATION-eng : 01:35:59.212000000 NUMBER_OF_FRAMES: 13 NUMBER_OF_FRAMES-eng: 13 NUMBER_OF_BYTES : 351 NUMBER_OF_BYTES-eng: 351 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:5(spa): Subtitle: subrip (srt) Metadata: BPS : 41 BPS-eng : 41 DURATION : 01:36:15.812000000 DURATION-eng : 01:36:15.812000000 NUMBER_OF_FRAMES: 950 NUMBER_OF_FRAMES-eng: 950 NUMBER_OF_BYTES : 30189 NUMBER_OF_BYTES-eng: 30189 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:6(eng): Subtitle: subrip (srt) Metadata: BPS : 43 BPS-eng : 43 DURATION : 01:36:08.901000000 DURATION-eng : 01:36:08.901000000 NUMBER_OF_FRAMES: 1121 NUMBER_OF_FRAMES-eng: 1121 NUMBER_OF_BYTES : 31401 NUMBER_OF_BYTES-eng: 31401 _STATISTICS_WRITING_APP: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_APP-eng: mkvmerge v10.0.0 ('To Drown In You') 64bit _STATISTICS_WRITING_DATE_UTC: 2024-12-25 23:11:21 _STATISTICS_WRITING_DATE_UTC-eng: 2024-12-25 23:11:21 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES [out#0/hls @ 0x5a4e6d1421c0] Codec AVOption threads (set the number of threads) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream. Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:2 -> #0:1 (copy) Output #0, hls, to '/var/cache/jellyfin/transcodes/xxx.m3u8': Metadata: encoder : Lavf61.1.100 Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x800 [SAR 1:1 DAR 12:5], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn (default) Stream #0:1: Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default) ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information _No response_
OVERLORD added the bugmedia playback labels 2026-02-07 04:12:21 +03:00
Author
Owner

@kitopopo commented on GitHub (Apr 1, 2025):

hi dear friends,

I've been testing Jellyfin on my LG 55C6V and noticed a strange behavior when playing files with multiple audio tracks.

To investigate, I took two movies with multiple audio tracks in different formats and used a well-known program to multiplex each movie in two ways:

Multiplexed with a single audio track → Jellyfin plays the file without any issues, no remuxing occurs.

Multiplexed with two or more audio tracks → Jellyfin starts remuxing instead of playing the file directly.

Surprisingly, each audio track works perfectly when multiplexed individually with the video and subtitles. However, when the file contains multiple audio tracks, Jellyfin seems to struggle with handling them correctly and starts remuxing.

My question is: Why does Jellyfin not remux when there's only one audio track, but it does when there are multiple tracks? It seems like Jellyfin can't separate the audio tracks properly and remuxes the entire file instead. Is there a way to prevent this and allow multiple audio tracks without remuxing?

I hope this issue can be fixed in the next Jellyfin version or future updates. Thanks for your hard work and dedication!

@kitopopo commented on GitHub (Apr 1, 2025): hi dear friends, I've been testing Jellyfin on my LG 55C6V and noticed a strange behavior when playing files with multiple audio tracks. To investigate, I took two movies with multiple audio tracks in different formats and used a well-known program to multiplex each movie in two ways: Multiplexed with a single audio track → Jellyfin plays the file without any issues, no remuxing occurs. Multiplexed with two or more audio tracks → Jellyfin starts remuxing instead of playing the file directly. Surprisingly, each audio track works perfectly when multiplexed individually with the video and subtitles. However, when the file contains multiple audio tracks, Jellyfin seems to struggle with handling them correctly and starts remuxing. My question is: Why does Jellyfin not remux when there's only one audio track, but it does when there are multiple tracks? It seems like Jellyfin can't separate the audio tracks properly and remuxes the entire file instead. Is there a way to prevent this and allow multiple audio tracks without remuxing? I hope this issue can be fixed in the next Jellyfin version or future updates. Thanks for your hard work and dedication!
Author
Owner

@felix920506 commented on GitHub (Apr 28, 2025):

Working as intended. MKV is problematic on WebOS.

@felix920506 commented on GitHub (Apr 28, 2025): Working as intended. MKV is problematic on WebOS.
Author
Owner

@kitopopo commented on GitHub (Apr 28, 2025):

Working as intended. MKV is problematic on WebOS.

Thank you for your reply.

However, I would like to point out that I have another LG TV (model 49SM9000PLA with WebOS) where Jellyfin works perfectly in "Direct Play" without remuxing, using the same server, settings, and media files.

This suggests that the problem is not strictly due to WebOS in general, but may vary depending on the specific WebOS version, device model, or how Jellyfin identifies the client capabilities.

Therefore, I kindly request not to close the issue yet.

It would be very helpful if you could implement an option to force Direct Play at the user's own risk, or to allow manual configuration of client capabilities in the server settings, so we can bypass automatic detection when necessary.

I would also like to highlight that when playing movies directly from a USB drive on the TV, all files play correctly using direct playback (Direct Play), and when using Plex, the files also play without any need for remuxing or transcoding.

As a final note, thank you very much for maintaining this amazing project. Jellyfin is an exceptional platform and I truly appreciate your work.

Best regards.

@kitopopo commented on GitHub (Apr 28, 2025): > Working as intended. MKV is problematic on WebOS. Thank you for your reply. However, I would like to point out that I have another LG TV (model 49SM9000PLA with WebOS) where Jellyfin works perfectly in "Direct Play" without remuxing, using the same server, settings, and media files. This suggests that the problem is not strictly due to WebOS in general, but may vary depending on the specific WebOS version, device model, or how Jellyfin identifies the client capabilities. Therefore, I kindly request not to close the issue yet. It would be very helpful if you could implement an option to force Direct Play at the user's own risk, or to allow manual configuration of client capabilities in the server settings, so we can bypass automatic detection when necessary. I would also like to highlight that when playing movies directly from a USB drive on the TV, all files play correctly using direct playback (Direct Play), and when using Plex, the files also play without any need for remuxing or transcoding. As a final note, thank you very much for maintaining this amazing project. Jellyfin is an exceptional platform and I truly appreciate your work. Best regards.
Author
Owner

@Troyzig commented on GitHub (Sep 4, 2025):

I am having the same issue on lg webos 24 (LG oled65" b4 tv), served by jellyfin 10.10.7 on a windows 11 pc. Please find a solution.

@Troyzig commented on GitHub (Sep 4, 2025): I am having the same issue on lg webos 24 (LG oled65" b4 tv), served by jellyfin 10.10.7 on a windows 11 pc. Please find a solution.
Author
Owner

@kitopopo commented on GitHub (Sep 4, 2025):

Hi, I’m still experiencing this issue on my LG55C6V. Could you please look into it and consider reopening the issue? I’d really appreciate any solution or guidance.

Thank you!

@kitopopo commented on GitHub (Sep 4, 2025): Hi, I’m still experiencing this issue on my LG55C6V. Could you please look into it and consider reopening the issue? I’d really appreciate any solution or guidance. Thank you!
Author
Owner

@akritm commented on GitHub (Sep 29, 2025):

I've noticed similar problem, but on web client. On my test files (both mkv and mp4) jellyfin somehow works differently on Chrome / Edge / Jellyfin Media player on same windows machine with same user. MKV includes multiple tracks : including AC-3 Stereo, AC-3 5.1 and E-AC-3 JOC 5.1 (Dolby Digital Plus with Dolby Atmos). They all works the same.

  1. In Chrome - mode is Direct streaming (instead of Direct play) - which means audio is transcoded on the fly, but video not (see here.
    Logs are showing TranscodeManager line with -codec:a:0 libfdk_aac parameter (transcoding AC_3 ->AAC)
  2. In Edge - mode is Remuxing both for mkv and mp4, meaning it's just remuxing the container without transcoding
    Logs are showing TranscodeManager line with -codec:a:0 copy parameter (no transcoding of audio)
  3. In Jellyfin Media Player for Windows I see Direct Playing and no records of TranscodeManager in logs. No transcoding and even remuxing At all
  4. (just checked on LG WebOS at OLED55C9PLA) -> it gives remuxing on MKV and direct play on MP4 files.
    updated: to confirm point 4 I manually converted mkv to mp4 container with no transcodding of video and audio - and now it uses direct play.
@akritm commented on GitHub (Sep 29, 2025): I've noticed similar problem, but on web client. On my test files (both mkv and mp4) jellyfin somehow works differently on Chrome / Edge / Jellyfin Media player on same windows machine with same user. MKV includes multiple tracks : including AC-3 Stereo, AC-3 5.1 and E-AC-3 JOC 5.1 (Dolby Digital Plus with Dolby Atmos). They all works the same. 1. In Chrome - mode is **Direct streaming** (instead of Direct play) - which means audio is transcoded on the fly, but video not (see [here](https://jellyfin.org/docs/general/post-install/transcoding/). Logs are showing TranscodeManager line with -codec:a:0 libfdk_aac parameter (transcoding AC_3 ->AAC) 2. In Edge - mode is **Remuxing** both for mkv and mp4, meaning it's just remuxing the container without transcoding Logs are showing TranscodeManager line with -codec:a:0 copy parameter (no transcoding of audio) 3. In Jellyfin Media Player for Windows I see Direct Playing and no records of TranscodeManager in logs. No transcoding and even remuxing At all 4. (just checked on LG WebOS at OLED55C9PLA) -> it gives remuxing on MKV and direct play on MP4 files. updated: to confirm point 4 I manually converted mkv to mp4 container with no transcodding of video and audio - and now it uses direct play.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#6852