You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.
Describe the bug
Open Jellyfin Android TV client and sign into server.
Navigate to a movie encoded as Dolby Vision Profile 8.1 + HDR10 compatible (e.g., HEVC 10-bit DV.HDR10 MKV).
Ensure the client/server forces a transcode to a lower bitrate, e.g.:
Set a low “Internet streaming bitrate limit” on the client OR Stream remotely with a bandwidth cap that triggers transcoding.
Start playback.
Resolved by using Wholphin
Media info of the file
General
Unique ID : [redacted]
Complete name : /path/to/media/Movie.Title.(Year).2160p.mkv
Format : Matroska
Format version : Version 4
File size : 29.0 GiB
Duration : 2 h 19 min
Overall bit rate mode : Variable
Overall bit rate : 29.8 Mb/s
Frame rate : 23.976 FPS
Movie name : Movie.Title.Year.2160p.BluRay.TrueHD.Atmos.7.1.DV.HDR10.x265
Encoded by : [redacted]
Encoded date : [redacted]
Writing application : mkvmerge (64-bit)
Writing library : libebml + libmatroska
Source : UHD Blu-ray source
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5@High
HDR format : Dolby Vision (Profile 8.1, BL+RPU, HDR10 compatible)
Codec ID : V_MPEGH/ISO/HEVC
Duration : 2 h 19 min
Bit rate : 24.8 Mb/s
Width : 3 840 pixels
Height : 2 076 pixels
Display aspect ratio : 1.85:1
Frame rate mode : Constant
Frame rate : 23.976 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.130
Stream size : 24.2 GiB (83%)
Writing library : x265 (10-bit)
Encoding settings : CRF-based encode (details omitted)
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : BT.2020
Mastering display luminance : min: 0.0001 cd/m², max: 1000 cd/m²
Maximum Content Light Level : 1000 cd/m²
Maximum Frame-Average Light Level : 206 cd/m²
Audio #1
ID : 2
Format : MLP FBA
Commercial name : Dolby TrueHD with Dolby Atmos
Codec ID : A_TRUEHD
Duration : 2 h 19 min
Bit rate mode : Variable
Bit rate :~4 000 kb/s
Maximum bit rate :~6 800 kb/s
Channel(s) : 8 channels
Channel layout : L R C LFE Ls Rs Lb Rb
Sampling rate : 48.0 kHz
Compression mode : Lossless
Stream size : 3.9 GiB
Title : Dolby Atmos 7.1
Language : English
Default : Yes
Forced : No
Audio #2
ID : 3
Format : AC-3
Commercial name : Dolby Digital
Codec ID : A_AC3
Duration : 2 h 19 min
Bit rate : 640 kb/s
Channel(s) : 6 channels
Channel layout : 5.1
Sampling rate : 48.0 kHz
Compression mode : Lossy
Stream size : 638 MiB
Title : Dolby Digital 5.1
Language : English
Default : No
Forced : No
Audio #3
ID : 4
Format : AC-3
Commercial name : Dolby Digital
Codec ID : A_AC3
Duration : 2 h 19 min
Bit rate : 192 kb/s
Channel(s) : 2 channels
Channel layout : Stereo
Sampling rate : 48.0 kHz
Compression mode : Lossy
Stream size : 191 MiB
Title : Commentary Track
Language : English
Default : No
Forced : No
Text #1
Format : PGS
Title : English (SDH)
Language : English
Default : No
Forced : No
Text #2
Format : PGS
Title : Chinese (Traditional)
Language : Chinese
Default : No
Forced : No
Text #3
Format : PGS
Title : Spanish (Latin American)
Language : Spanish
Default : No
Forced : No
Menu
Chapters present (titles anonymized)
This issue respects the following points:
Describe the bug
Media info of the file
Media capabilities report
client: Jellyfin for Android TV
client_version: 0.19.7
client_repository: https://github.com/jellyfin/jellyfin-androidtv
type: media_capabilities_report
format: markdown
Generated device profile
{ "Name": "AndroidTV-Default", "MaxStreamingBitrate": 200000000, "MaxStaticBitrate": 200000000, "DirectPlayProfiles": [ { "Container": "asf,hls,m4v,mkv,mov,mp4,ogm,ogv,ts,vob,webm,wmv,xvid", "AudioCodec": "aac,aac_latm,ac3,alac,dca,dts,eac3,flac,mlp,mp2,mp3,opus,pcm_alaw,pcm_mulaw,pcm_s16le,pcm_s20le,pcm_s24le,truehd,vorbis", "VideoCodec": "av1,h264,hevc,mpeg,mpeg2video,vc1,vp8,vp9", "Type": "Video" }, { "Container": "", "AudioCodec": "aac,aac_latm,ac3,alac,dca,dts,eac3,flac,mlp,mp2,mp3,opus,pcm_alaw,pcm_mulaw,pcm_s16le,pcm_s20le,pcm_s24le,truehd,vorbis", "VideoCodec": "", "Type": "Audio" } ], "TranscodingProfiles": [ { "Container": "ts", "Type": "Video", "VideoCodec": "hevc,h264", "AudioCodec": "aac,aac_latm,ac3,alac,dca,dts,eac3,flac,mlp,mp2,mp3,opus,pcm_alaw,pcm_mulaw,pcm_s16le,pcm_s20le,pcm_s24le,truehd,vorbis", "Protocol": "hls", "EnableSubtitlesInManifest": true, "Conditions": [] }, { "Container": "ts", "Type": "Audio", "VideoCodec": "", "AudioCodec": "aac", "Protocol": "hls", "Conditions": [] } ], "ContainerProfiles": [], "CodecProfiles": [ { "Type": "Video", "Conditions": [ { "Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline", "IsRequired": false } ], "ApplyConditions": [], "Codec": "h264" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "52", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline", "IsRequired": false } ], "Codec": "h264" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "RefFrames", "Value": "12", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "GreaterThanEqual", "Property": "Width", "Value": "1200", "IsRequired": false } ], "Codec": "h264" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "RefFrames", "Value": "4", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "GreaterThanEqual", "Property": "Width", "Value": "1900", "IsRequired": false } ], "Codec": "h264" }, { "Type": "Video", "Conditions": [ { "Condition": "EqualsAny", "Property": "VideoProfile", "Value": "main|main 10", "IsRequired": false } ], "ApplyConditions": [], "Codec": "hevc" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "156", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "Equals", "Property": "VideoProfile", "Value": "main", "IsRequired": false } ], "Codec": "hevc" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "153", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "Equals", "Property": "VideoProfile", "Value": "main 10", "IsRequired": false } ], "Codec": "hevc" }, { "Type": "Video", "Conditions": [ { "Condition": "NotEquals", "Property": "VideoProfile", "Value": "none", "IsRequired": false } ], "ApplyConditions": [], "Codec": "av1" }, { "Type": "Video", "Conditions": [ { "Condition": "Equals", "Property": "VideoProfile", "Value": "none", "IsRequired": false } ], "ApplyConditions": [], "Codec": "vc1" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "Width", "Value": "4096", "IsRequired": false }, { "Condition": "LessThanEqual", "Property": "Height", "Value": "2176", "IsRequired": false } ], "ApplyConditions": [], "Codec": "h264" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "Width", "Value": "4096", "IsRequired": false }, { "Condition": "LessThanEqual", "Property": "Height", "Value": "2176", "IsRequired": false } ], "ApplyConditions": [], "Codec": "hevc" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "Width", "Value": "4096", "IsRequired": false }, { "Condition": "LessThanEqual", "Property": "Height", "Value": "2176", "IsRequired": false } ], "ApplyConditions": [], "Codec": "av1" }, { "Type": "Video", "Conditions": [ { "Condition": "LessThanEqual", "Property": "Width", "Value": "0", "IsRequired": false }, { "Condition": "LessThanEqual", "Property": "Height", "Value": "0", "IsRequired": false } ], "ApplyConditions": [], "Codec": "vc1" }, { "Type": "Video", "Conditions": [ { "Condition": "NotEquals", "Property": "VideoRangeType", "Value": "DOVIInvalid", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "EqualsAny", "Property": "VideoRangeType", "Value": "DOVIInvalid", "IsRequired": false } ], "Codec": "av1" }, { "Type": "Video", "Conditions": [ { "Condition": "NotEquals", "Property": "VideoRangeType", "Value": "DOVIInvalid|DOVIWithEL|DOVIWithELHDR10Plus|HDR10Plus", "IsRequired": false } ], "ApplyConditions": [ { "Condition": "EqualsAny", "Property": "VideoRangeType", "Value": "DOVIInvalid|DOVIWithEL|DOVIWithELHDR10Plus|HDR10Plus", "IsRequired": false } ], "Codec": "hevc" }, { "Type": "VideoAudio", "Conditions": [ { "Condition": "LessThanEqual", "Property": "AudioChannels", "Value": "8", "IsRequired": false } ], "ApplyConditions": [] } ], "SubtitleProfiles": [ { "Format": "vtt", "Method": "Embed" }, { "Format": "vtt", "Method": "External" }, { "Format": "vtt", "Method": "Hls" }, { "Format": "webvtt", "Method": "Embed" }, { "Format": "webvtt", "Method": "External" }, { "Format": "webvtt", "Method": "Hls" }, { "Format": "srt", "Method": "Embed" }, { "Format": "srt", "Method": "External" }, { "Format": "subrip", "Method": "Embed" }, { "Format": "subrip", "Method": "External" }, { "Format": "ttml", "Method": "Embed" }, { "Format": "ttml", "Method": "External" }, { "Format": "dvbsub", "Method": "Embed" }, { "Format": "dvbsub", "Method": "Encode" }, { "Format": "dvdsub", "Method": "Embed" }, { "Format": "dvdsub", "Method": "Encode" }, { "Format": "idx", "Method": "Embed" }, { "Format": "idx", "Method": "Encode" }, { "Format": "pgs", "Method": "Embed" }, { "Format": "pgs", "Method": "Encode" }, { "Format": "pgssub", "Method": "Embed" }, { "Format": "pgssub", "Method": "Encode" }, { "Format": "ass", "Method": "Encode" }, { "Format": "ssa", "Method": "Encode" } ] }Device codec decoders
OMX.realtek.audio.decoder (OMX.realtek.audio.decoder)
OMX.realtek.audio.dolby.ac3.decoder (OMX.realtek.audio.dolby.ac3.decoder)
OMX.realtek.audio.dolby.ac4.decoder (OMX.realtek.audio.dolby.ac4.decoder)
OMX.realtek.audio.dolby.eac3.decoder (OMX.realtek.audio.dolby.eac3.decoder)
OMX.realtek.video.dav1.10.decoder (OMX.realtek.video.dav1.10.decoder)
OMX.realtek.video.dav1.10.decoder.secure (OMX.realtek.video.dav1.10.decoder.secure)
OMX.realtek.video.decoder (OMX.realtek.video.decoder)
OMX.realtek.video.decoder.secure (OMX.realtek.video.decoder.secure)
OMX.realtek.video.decoder.vp8 (OMX.realtek.video.decoder.vp8)
OMX.realtek.video.decoder.vp8.secure (OMX.realtek.video.decoder.vp8.secure)
OMX.realtek.video.dvav.se.decoder (OMX.realtek.video.dvav.se.decoder)
OMX.realtek.video.dvav.se.decoder.secure (OMX.realtek.video.dvav.se.decoder.secure)
OMX.realtek.video.dvhe.dtr.decoder (OMX.realtek.video.dvhe.dtr.decoder)
OMX.realtek.video.dvhe.dtr.decoder.secure (OMX.realtek.video.dvhe.dtr.decoder.secure)
OMX.realtek.video.dvhe.st.decoder (OMX.realtek.video.dvhe.st.decoder)
OMX.realtek.video.dvhe.st.decoder.secure (OMX.realtek.video.dvhe.st.decoder.secure)
OMX.realtek.video.dvhe.stn.decoder (OMX.realtek.video.dvhe.stn.decoder)
OMX.realtek.video.dvhe.stn.decoder.secure (OMX.realtek.video.dvhe.stn.decoder.secure)
c2.android.aac.decoder (c2.android.aac.decoder)
c2.android.aac.decoder (OMX.google.aac.decoder)
c2.android.amrnb.decoder (c2.android.amrnb.decoder)
c2.android.amrnb.decoder (OMX.google.amrnb.decoder)
c2.android.amrwb.decoder (c2.android.amrwb.decoder)
c2.android.amrwb.decoder (OMX.google.amrwb.decoder)
c2.android.avc.decoder (c2.android.avc.decoder)
c2.android.avc.decoder (OMX.google.h264.decoder)
c2.android.flac.decoder (c2.android.flac.decoder)
c2.android.flac.decoder (OMX.google.flac.decoder)
c2.android.g711.alaw.decoder (c2.android.g711.alaw.decoder)
c2.android.g711.alaw.decoder (OMX.google.g711.alaw.decoder)
c2.android.g711.mlaw.decoder (c2.android.g711.mlaw.decoder)
c2.android.g711.mlaw.decoder (OMX.google.g711.mlaw.decoder)
c2.android.h263.decoder (c2.android.h263.decoder)
c2.android.h263.decoder (OMX.google.h263.decoder)
c2.android.hevc.decoder (c2.android.hevc.decoder)
c2.android.hevc.decoder (OMX.google.hevc.decoder)
c2.android.mp3.decoder (c2.android.mp3.decoder)
c2.android.mp3.decoder (OMX.google.mp3.decoder)
c2.android.mpeg2.decoder (c2.android.mpeg2.decoder)
c2.android.mpeg2.decoder (OMX.google.mpeg2.decoder)
c2.android.mpeg4.decoder (c2.android.mpeg4.decoder)
c2.android.mpeg4.decoder (OMX.google.mpeg4.decoder)
c2.android.opus.decoder (c2.android.opus.decoder)
c2.android.opus.decoder (OMX.google.opus.decoder)
c2.android.raw.decoder (c2.android.raw.decoder)
c2.android.raw.decoder (OMX.google.raw.decoder)
c2.android.vorbis.decoder (c2.android.vorbis.decoder)
c2.android.vorbis.decoder (OMX.google.vorbis.decoder)
c2.android.vp8.decoder (c2.android.vp8.decoder)
c2.android.vp8.decoder (OMX.google.vp8.decoder)
c2.android.vp9.decoder (c2.android.vp9.decoder)
c2.android.vp9.decoder (OMX.google.vp9.decoder)
Known media types
Codec HDR Support
AV1
HEVC
Display information
Id:
0Name:
Built-in ScreenRotation: 0°
Refresh rate:
60.000004VSYNC offset:
1msPresentation deadline:
16.666666msMinimal post processing:
trueAny HDR:
trueWide color gamut:
falsePreferred wide color space:
nullHDR capabilities:
App information
App version:
0.19.7(190799)Package name:
org.jellyfin.androidtvDevice information
Android version:
12Device brand:
TCLDevice product:
G10_4K_US_NFDevice model:
Smart TVDevice manufacturer:
TCLDevice codename:
G10Device SKU:
ATV00104021Device SOC:
RTD2875PClient logs
No response
FFmpeg logs
Application version
0.19.7
Where did you install the app from?
Google Play Store
Device information
TCL 4K TV (2024)
Android version
Android 12
Jellyfin server version
10.11.6
Other sources
No response