Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix 4k HEVC downscaling on 1080p devices #3419

Closed
wants to merge 1 commit into from

Conversation

MichaelRUSF
Copy link
Contributor

Changes
Add DeviceUtils.has4kVideoSupport conditional tests directly to the deviceHevcCodecProfile in the ProfileHelper.

Issues
Fixes #3388 #2516

ProfileConditionValue.VideoProfile,
"none"
),
ProfileCondition(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do these conditions add? The max1080pProfileConditions are already included in a CodecProfile to limit the resolution. Including them here too should be pointless noise.

See:

// Limit video resolution support for older devices
if (!DeviceUtils.has4kVideoSupport()) {
add(CodecProfile().apply {
type = CodecType.Video
conditions = max1080pProfileConditions
})
}

The way the Jellyfin server works is that all codec profiles that match the type, codec, container and applyConditions of a media file need all their conditions to be true in order for compatibility to be agreed. Therefore the width and height are already being checked for when DeviceUtils.has4kVideoSupport() is false due to the above.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In theory, that statement should work, but it doesn't. Why not? Go figure. Luckily, I was able to dig up some old 1080p devices to test this out. I tried several different ways of rewriting this, but this is the version that actually worked.

I can tell you some findings with the original code. A 4k video would transcode initially for unsupported resolution as it should. Play another video then come back and the same file would no longer transcode and would just get remuxed causing the player to crash, along with any other video played after that. 🤷‍♂️

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the profile is correct the bug should be fixed server-side

Copy link
Member

@nielsvanvelzen nielsvanvelzen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the current state of this change? Do we still need it or has it been fixed with one of the other profile changes already?

@MichaelRUSF
Copy link
Contributor Author

With a 2160p stream:

Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv), 3840x1600 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn (default) 

The current code does not trigger a transcode and will only copy the video in its original resolution causing playback to fail for devices that do not support4k:

Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (ac3 (native) -> aac (libfdk_aac))

Output #0, hls, to 'C:\transcode\117f45fa148a2c825ed8dd0078ab7c41.m3u8':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: hevc (Main 10) (dvh1 / 0x31687664), yuv420p10le(tv), 3840x1600 [SAR 1:1 DAR 12:5], q=2-31, 23.98 fps, 23.98 tbr, 24k tbn

This fix will correctly trigger a transcode to a 1080p stream:

Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> hevc (hevc_amf))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Output #0, hls, to 'C:\transcode\f374232fd5c702c97f22ac786b736009.m3u8':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: hevc (hvc1 / 0x31637668), d3d11(tv, bt709, progressive), 1920x800 [SAR 1:1 DAR 12:5], q=2-31, 31057 kb/s, 23.98 fps, 90k tbn 

This should fix the issue described in #3820, allowing 4k to 1080p playback in Google Chromecast HD and on older 1080p firetv devices.

@nielsvanvelzen
Copy link
Member

Thanks for the explanation. I think I understand the issue now. Even before this PR the HEVC video would trigger a transcode but it wouldn't downscale the video. With these conditions added it does.

I started debugging by adding a condition for a maximum width of 100, so any video I would play would have to be transcoded. After trying various things and looking through the server code I found the issue: the server uses all codec profiles to determine if transcoding is required, but only the FIRST matching codec profile is used to set transcoding requirements.

@MichaelRUSF
Copy link
Contributor Author

Just tested out the pending server fix and it resolves the issue! This PR is no longer needed.

@nielsvanvelzen
Copy link
Member

Awesome! Thanks for testing that. It was quite the adventure to figure out this behavior, it appears to be a side-effect from a big change in the 10.8 release.

@GrabbenD
Copy link

PR: jellyfin/jellyfin#12499

@MichaelRUSF MichaelRUSF deleted the 1080p_fix branch August 25, 2024 18:11
@avionics75
Copy link
Contributor

Still not working with JF Server 10.9.10 and JF ATV 0.17.4, 4K content result in player error on Mi Stick 1080p with Android TV :(

FFmpeg logs :

{"Protocol":0,"Id":"d174a83eb441d949ac7a6413bd6fbc7f","Path":"D:\Medias\Films\2024\Black.Mass.2015.MULTi.VFF.2160p.10bit.4KLight.DV.HDR.BluRay.DTS-HD.MA.5.1.x265-QTZ-Wawacity.ing.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv","Size":9409197364,"Name":"Black.Mass.2015.MULTi.VFF.2160p.10bit.4KLight.DV.HDR.BluRay.DTS-HD.MA.5.1.x265-QTZ-Wawacity.ing","IsRemote":false,"ETag":"0cb52f9c7f298f61aee84d4f795e9651","RunTimeTicks":73518860000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"hevc","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":"bt2020nc","ColorTransfer":"smpte2084","ColorPrimaries":"bt2020","DvVersionMajor":1,"DvVersionMinor":0,"DvProfile":8,"DvLevel":6,"RpuPresentFlag":1,"ElPresentFlag":0,"BlPresentFlag":1,"DvBlSignalCompatibilityId":1,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":2,"VideoRangeType":5,"VideoDoViTitle":"DV Profile 8.1 (HDR10)","AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"4K HEVC HDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":10238676,"BitDepth":10,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":1600,"Width":3840,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main 10","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":"yuv420p10le","Level":153,"IsAnamorphic":false},{"Codec":"ac3","CodecTag":null,"Language":"fre","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"FR VFF : AC3 5.1","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Par d\u00E9faut","LocalizedForced":null,"LocalizedExternal":"Externe","LocalizedHearingImpaired":null,"DisplayTitle":"FR VFF : AC3 5.1 - Fre - Dolby Digital - Par d\u00E9faut","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,"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":"dts","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"ENG VO : DTS-HD MA 5.1","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":"Par d\u00E9faut","LocalizedForced":null,"LocalizedExternal":"Externe","LocalizedHearingImpaired":null,"DisplayTitle":"ENG VO : DTS-HD MA 5.1 - Anglais","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":"5.1","BitRate":3443898,"BitDepth":24,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":"DTS-HD MA","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":"subrip","CodecTag":null,"Language":"fre","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"FR Forced : SRT","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Non d\u00E9fini","LocalizedDefault":"Par d\u00E9faut","LocalizedForced":"Forc\u00E9","LocalizedExternal":"Externe","LocalizedHearingImpaired":"Malentendants","DisplayTitle":"FR Forced : SRT - Fre - Par d\u00E9faut - Forc\u00E9 - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":true,"IsHearingImpaired":false,"Height":0,"Width":0,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":3,"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":"fre","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"FR Full : SRT","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Non d\u00E9fini","LocalizedDefault":"Par d\u00E9faut","LocalizedForced":"Forc\u00E9","LocalizedExternal":"Externe","LocalizedHearingImpaired":"Malentendants","DisplayTitle":"FR Full : SRT - Fre - 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,"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":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"ENG Full : SRT","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Non d\u00E9fini","LocalizedDefault":"Par d\u00E9faut","LocalizedForced":"Forc\u00E9","LocalizedExternal":"Externe","LocalizedHearingImpaired":"Malentendants","DisplayTitle":"ENG Full : SRT - Anglais - 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,"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":"PGSSUB","CodecTag":null,"Language":"fre","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"FR Forced : PGS","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Non d\u00E9fini","LocalizedDefault":"Par d\u00E9faut","LocalizedForced":"Forc\u00E9","LocalizedExternal":"Externe","LocalizedHearingImpaired":"Malentendants","DisplayTitle":"FR Forced : PGS - Fre - Forc\u00E9 - PGSSUB","NalLengthSize":null,"IsInterlaced":false,"IsAVC":false,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":true,"IsHearingImpaired":false,"Height":1080,"Width":1920,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":6,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"PGSSUB","CodecTag":null,"Language":"fre","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"FR Full : PGS","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Non d\u00E9fini","LocalizedDefault":"Par d\u00E9faut","LocalizedForced":"Forc\u00E9","LocalizedExternal":"Externe","LocalizedHearingImpaired":"Malentendants","DisplayTitle":"FR Full : PGS - Fre - PGSSUB","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":1080,"Width":1920,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":7,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"PGSSUB","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"ENG Full SDH : PGS","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Non d\u00E9fini","LocalizedDefault":"Par d\u00E9faut","LocalizedForced":"Forc\u00E9","LocalizedExternal":"Externe","LocalizedHearingImpaired":"Malentendants","DisplayTitle":"ENG Full SDH : PGS - Anglais - Malentendants - PGSSUB","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":true,"Height":1080,"Width":1920,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":8,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":14322574,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

C:\Program Files\Jellyfin\Server\ffmpeg.exe -analyzeduration 200M -probesize 1G -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -noautorotate -i file:"D:\Medias\Films\2024\Black.Mass.2015.MULTi.VFF.2160p.10bit.4KLight.DV.HDR.BluRay.DTS-HD.MA.5.1.x265-QTZ-Wawacity.ing.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 hevc_nvenc -tag:v:0 hvc1 -preset p1 -b:v 10238676 -maxrate 10238676 -bufsize 20477352 -profile:v:0 main -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd3092%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd3092.m3u8"

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13-win32 (GCC)
configuration: --prefix=/opt/ffmpeg --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --disable-w32threads --enable-pthreads --enable-shared --enable-lto --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Input #0, matroska,webm, from 'file:D:\Medias\Films\2024\Black.Mass.2015.MULTi.VFF.2160p.10bit.4KLight.DV.HDR.BluRay.DTS-HD.MA.5.1.x265-QTZ-Wawacity.ing.mkv':
Metadata:
title : Black Mass (2015) MULTi VFF 2160p 10bit 4KLight DV HDR BluRay DTS-HD MA 5.1 x265-QTZ
encoder : libebml v1.4.5 + libmatroska v1.7.1
creation_time : 2024-08-23T21:21:14.000000Z
Duration: 02:02:31.89, start: 0.000000, bitrate: 10238 kb/s
Chapters:
Chapter #0:0: start 0.000000, end 582.248000
Metadata:
title : Chapitre 01
Chapter #0:1: start 582.248000, end 1105.479000
Metadata:
title : Chapitre 02
Chapter #0:2: start 1105.479000, end 1880.087000
Metadata:
title : Chapitre 03
Chapter #0:3: start 1880.087000, end 2507.046000
Metadata:
title : Chapitre 04
Chapter #0:4: start 2507.046000, end 3116.739000
Metadata:
title : Chapitre 05
Chapter #0:5: start 3116.739000, end 3557.846000
Metadata:
title : Chapitre 06
Chapter #0:6: start 3557.846000, end 4155.735000
Metadata:
title : Chapitre 07
Chapter #0:7: start 4155.735000, end 4791.912000
Metadata:
title : Chapitre 08
Chapter #0:8: start 4791.912000, end 5325.862000
Metadata:
title : Chapitre 09
Chapter #0:9: start 5325.862000, end 5982.226000
Metadata:
title : Chapitre 10
Chapter #0:10: start 5982.226000, end 6736.688000
Metadata:
title : Chapitre 11
Chapter #0:11: start 6736.688000, end 6913.448000
Metadata:
title : Chapitre 12
Chapter #0:12: start 6913.448000, end 7351.886000
Metadata:
title : Chapitre 13
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1600, SAR 1:1 DAR 12:5, 23.98 fps, 23.98 tbr, 1k tbn (default)
Metadata:
BPS : 6123085
DURATION : 02:02:31.886000000
NUMBER_OF_FRAMES: 176269
NUMBER_OF_BYTES : 5627027983
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Side data:
DOVI configuration record: version: 1.0, profile: 8, level: 6, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 1
Stream #0:1(fre): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
Metadata:
title : FR VFF : AC3 5.1
BPS : 640000
DURATION : 02:02:31.872000000
NUMBER_OF_FRAMES: 229746
NUMBER_OF_BYTES : 588149760
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:2(eng): Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s32p (24 bit)
Metadata:
title : ENG VO : DTS-HD MA 5.1
BPS : 3443898
DURATION : 02:02:31.883000000
NUMBER_OF_FRAMES: 689239
NUMBER_OF_BYTES : 3164891976
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:3(fre): Subtitle: subrip (default) (forced)
Metadata:
title : FR Forced : SRT
BPS : 2
DURATION : 02:01:36.873000000
NUMBER_OF_FRAMES: 44
NUMBER_OF_BYTES : 1929
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:4(fre): Subtitle: subrip
Metadata:
title : FR Full : SRT
BPS : 59
DURATION : 02:01:36.873000000
NUMBER_OF_FRAMES: 1692
NUMBER_OF_BYTES : 54530
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:5(eng): Subtitle: subrip
Metadata:
title : ENG Full : SRT
BPS : 73
DURATION : 01:53:45.152000000
NUMBER_OF_FRAMES: 1980
NUMBER_OF_BYTES : 62661
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:6(fre): Subtitle: hdmv_pgs_subtitle, 1920x1080 (forced)
Metadata:
title : FR Forced : PGS
BPS : 1410
DURATION : 02:01:36.873000000
NUMBER_OF_FRAMES: 88
NUMBER_OF_BYTES : 1286446
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:7(fre): Subtitle: hdmv_pgs_subtitle, 1920x1080
Metadata:
title : FR Full : PGS
BPS : 34883
DURATION : 02:01:36.873000000
NUMBER_OF_FRAMES: 3384
NUMBER_OF_BYTES : 31817748
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:8(eng): Subtitle: hdmv_pgs_subtitle, 1920x1080 (hearing impaired)
Metadata:
title : ENG Full SDH : PGS
BPS : 50976
DURATION : 01:53:50.032000000
NUMBER_OF_FRAMES: 4240
NUMBER_OF_BYTES : 43521255
_STATISTICS_WRITING_APP: mkvmerge v86.0 ('Winter') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-08-23 21:21:14
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> hevc (hevc_nvenc))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Output #0, hls, to 'C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd3092.m3u8':
Metadata:
encoder : Lavf60.3.100
Stream #0:0: Video: hevc (Main) (hvc1 / 0x31637668), cuda(tv, bt709, progressive), 3840x1600 [SAR 1:1 DAR 12:5], q=2-31, 10238 kb/s, 23.98 fps, 90k tbn (default)
Metadata:
encoder : Lavc60.3.100 hevc_nvenc
Side data:
cpb: bitrate max/min/avg: 10238676/0/10238676 buffer size: 20477352 vbv_delay: N/A
DOVI configuration record: version: 1.0, profile: 8, level: 6, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 1
Stream #0:1: Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
frame= 0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
frame= 67 fps=0.0 q=16.0 size=N/A time=00:00:03.07 bitrate=N/A speed=5.43x
[hls @ 000001cba15eeb00] Opening 'C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd30920.ts' for writing
[hls @ 000001cba15eeb00] Opening 'C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd30921.ts' for writing
frame= 149 fps=140 q=16.0 size=N/A time=00:00:06.33 bitrate=N/A speed=5.95x
[hls @ 000001cba15eeb00] Opening 'C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd30922.ts' for writing
frame= 232 fps=148 q=16.0 size=N/A time=00:00:09.72 bitrate=N/A speed=6.19x
[hls @ 000001cba15eeb00] Opening 'C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd30923.ts' for writing
frame= 315 fps=152 q=16.0 size=N/A time=00:00:13.15 bitrate=N/A speed=6.34x

[q] command received. Exiting.

[hls @ 000001cba15eeb00] Opening 'C:\ProgramData\Jellyfin\Server\transcodes\ca8384cf7052880e12a604a81cdd30924.ts' for writing
frame= 358 fps=153 q=16.0 Lsize=N/A time=00:00:15.42 bitrate=N/A speed= 6.6x
video:1400kB audio:1225kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

JellyFin server Logs :

[2024-08-30 18:34:15.042 +02:00] [INF] [18] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "C:\ProgramData\Jellyfin\Server\transcodes\d3c7277a9744a6154fecaab84bec9e80.m3u8"
[2024-08-30 18:34:15.149 +02:00] [INF] [37] Jellyfin.LiveTv.Listings.XmlTvListingsProvider: xmltv path: "C:\Program Files\web\Apache2426\htdocs\phpv7\sfrpeg\epgoqee.xml"
[2024-08-30 18:34:15.405 +02:00] [INF] [18] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2024-08-30 18:34:15.414 +02:00] [INF] [18] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "C:\ProgramData\Jellyfin\Server\transcodes\d3c7277a9744a6154fecaab84bec9e80.m3u8"
[2024-08-30 18:34:15.568 +02:00] [INF] [17] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Mamie". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-30 18:34:15.824 +02:00] [INF] [12] Jellyfin.LiveTv.Listings.XmlTvListingsProvider: xmltv path: "C:\Program Files\web\Apache2426\htdocs\phpv7\sfrpeg\epgoqee.xml"
[2024-08-30 18:34:16.178 +02:00] [INF] [12] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Refresh Guide" Completed after 0 minute(s) and 16 seconds
[2024-08-30 18:34:16.500 +02:00] [INF] [12] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Existing tracker found! : 0f89a75f20d492d47c822b8956741fc79c86089b-a900a7d099bc46bcbc9bfa6b900f7c71-0c970a5951b6452d1fab1c158d808f07
[2024-08-30 18:34:16.501 +02:00] [INF] [12] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Removing existing tracker : 0f89a75f20d492d47c822b8956741fc79c86089b-a900a7d099bc46bcbc9bfa6b900f7c71-0c970a5951b6452d1fab1c158d808f07
[2024-08-30 18:34:16.502 +02:00] [INF] [12] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : 0f89a75f20d492d47c822b8956741fc79c86089b-a900a7d099bc46bcbc9bfa6b900f7c71-0c970a5951b6452d1fab1c158d808f07
[2024-08-30 18:34:16.503 +02:00] [INF] [12] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 08/30/2024 18:34:16
[2024-08-30 18:34:16.505 +02:00] [INF] [12] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[2024-08-30 18:34:16.506 +02:00] [INF] [12] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[2024-08-30 18:34:16.933 +02:00] [INF] [12] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Android TV" "0.17.4" playing "1984". Stopped at "0" ms
[2024-08-30 18:34:16.942 +02:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "0f89a75f20d492d47c822b8956741fc79c86089b-a900a7d099bc46bcbc9bfa6b900f7c71-0c970a5951b6452d1fab1c158d808f07"
[2024-08-30 18:34:16.943 +02:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 08/30/2024 18:34:16
[2024-08-30 18:34:16.944 +02:00] [INF] [20] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
[2024-08-30 18:34:17.701 +02:00] [INF] [26] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "C:\Program Files\Jellyfin\Server\ffmpeg.exe" "-analyzeduration 200M -probesize 1G -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -noautorotate -i file:"D:\Medias\Films\2024\Nineteen.Eighty.Four.1984.MULTi.VFI.2160p.10bit.4KLight.SDR.BluRay.DTS-HD.MA.1.0.x265-QTZ-Wawacity.ing.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 hevc_nvenc -tag:v:0 hvc1 -preset p1 -b:v 10284490 -maxrate 10284490 -bufsize 20568980 -profile:v:0 main -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=format=yuv420p" -codec:a:0 libfdk_aac -ac 1 -ab 128000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "C:\ProgramData\Jellyfin\Server\transcodes\10f4586a817c5e3d31447cd3bc69a8d1%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "C:\ProgramData\Jellyfin\Server\transcodes\10f4586a817c5e3d31447cd3bc69a8d1.m3u8""
[2024-08-30 18:34:20.878 +02:00] [INF] [20] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "C:\ProgramData\Jellyfin\Server\transcodes\10f4586a817c5e3d31447cd3bc69a8d1.m3u8"
[2024-08-30 18:34:20.912 +02:00] [INF] [47] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Mamie". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-30 18:34:21.159 +02:00] [INF] [20] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2024-08-30 18:34:21.172 +02:00] [INF] [20] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "C:\ProgramData\Jellyfin\Server\transcodes\10f4586a817c5e3d31447cd3bc69a8d1.m3u8"
[2024-08-30 18:34:21.817 +02:00] [INF] [26] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : 0f89a75f20d492d47c822b8956741fc79c86089b-a900a7d099bc46bcbc9bfa6b900f7c71-0c970a5951b6452d1fab1c158d808f07
[2024-08-30 18:34:21.819 +02:00] [INF] [26] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 08/30/2024 18:34:21
[2024-08-30 18:34:21.820 +02:00] [INF] [26] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[2024-08-30 18:34:21.821 +02:00] [INF] [26] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[2024-08-30 18:34:22.688 +02:00] [INF] [26] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Android TV" "0.17.4" playing "1984". Stopped at "0" ms
[2024-08-30 18:34:22.693 +02:00] [INF] [17] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : "0f89a75f20d492d47c822b8956741fc79c86089b-a900a7d099bc46bcbc9bfa6b900f7c71-0c970a5951b6452d1fab1c158d808f07"
[2024-08-30 18:34:22.695 +02:00] [INF] [17] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 08/30/2024 18:34:22
[2024-08-30 18:34:22.696 +02:00] [INF] [17] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
[2024-08-30 18:34:22.956 +02:00] [INF] [20] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "C:\Program Files\Jellyfin\Server\ffmpeg.exe" "-analyzeduration 200M -probesize 1G -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -noautorotate -i file:"D:\Medias\Films\2024\Nineteen.Eighty.Four.1984.MULTi.VFI.2160p.10bit.4KLight.SDR.BluRay.DTS-HD.MA.1.0.x265-QTZ-Wawacity.ing.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 hevc_nvenc -tag:v:0 hvc1 -preset p1 -b:v 10284490 -maxrate 10284490 -bufsize 20568980 -profile:v:0 main -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=format=yuv420p" -codec:a:0 libfdk_aac -ac 1 -ab 128000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "C:\ProgramData\Jellyfin\Server\transcodes\b69235e73346a7789d7baed41ba9768f%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "C:\ProgramData\Jellyfin\Server\transcodes\b69235e73346a7789d7baed41ba9768f.m3u8""
[2024-08-30 18:34:24.804 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "83.198.4.139"
[2024-08-30 18:34:24.805 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id = "0c970a5951b6452d1fab1c158d808f07"
[2024-08-30 18:34:24.807 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id = "a900a7d099bc46bcbc9bfa6b900f7c71"
[2024-08-30 18:34:24.810 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int = 4
[2024-08-30 18:34:24.812 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id = ""
[2024-08-30 18:34:24.814 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id = "a900a7d099bc46bcbc9bfa6b900f7c71"
[2024-08-30 18:34:24.816 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method = "na"
[2024-08-30 18:34:24.818 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName = "Android TV"
[2024-08-30 18:34:24.820 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName = "TV Chambre"
[2024-08-30 18:34:24.822 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName = "1984"
[2024-08-30 18:34:24.823 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId = "0c970a5951b6452d1fab1c158d808f07"
[2024-08-30 18:34:24.824 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType = "Movie"
[2024-08-30 18:34:24.826 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
[2024-08-30 18:34:24.827 +02:00] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited

@MichaelRUSF
Copy link
Contributor Author

@avionics75
The client doesn't automatically detect if a device only supports 1080p. It needs to be manually listed in the DeviceUtils.kt. Provide your device model.

Ex
Device information
Device brand: Amazon
Device model: AFTT

	private const val FIRE_STICK_MODEL_GEN_1 = "AFTM"
	private const val FIRE_STICK_MODEL_GEN_2 = "AFTT"
	private const val FIRE_STICK_MODEL_GEN_3 = "AFTSSS"
	// These devices only support a max video resolution of 1080p
	fun has4kVideoSupport(): Boolean = Build.MODEL !in listOf(
		FIRE_STICK_MODEL_GEN_1,
		FIRE_STICK_MODEL_GEN_2,
		FIRE_STICK_MODEL_GEN_3,
		FIRE_STICK_LITE_MODEL,
		FIRE_TV_MODEL_GEN_1,
		FIRE_TV_MODEL_GEN_2,
		GOOGLE_CHROMECAST_HD_MODEL
	)

@avionics75
Copy link
Contributor

Thanks for the reply ! Here are some info about the device :
Device Brand : Xiaomi
Device Name : Mi Stick
Device Model : PFJ4098EU

The model number is the one I found over the internet but i'm not sure if that's what you were talking about

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4k hevc content fails to play on 1080p devices
6 participants