jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.9k stars 493 forks source link

Black screen at Dolby Vision, I have a theory with a HDR10+ Bug #4021

Open Dennis12345678901 opened 2 months ago

Dennis12345678901 commented 2 months ago

Describe the bug

My LG OLED TV supports HDR/HLG and Dolby Vision (no HDR10+). If I play 4K films from the server, 4K films that are available in Dolby Vision, some of them are played correctly. However, many only with sound and the picture remains black. With films in normal HDR everything works. My guess: It is films the Dolby Vision as well as HDR10+ and this HDR10+ is incorrectly issued although the TV cannot.

If I use Kodi on the same hardware, these films will be correct again (but also only after I have stated in the options of Kodi that the TV is not a HDR10+ but only HDR and Dolby Vision). If I take an external player in the Jelly app (Vimu Media Player for Fire TV), it also works with the correct reproduction of the film.

Tested on Fire TV Stick 4K 1.Gen and Fire TV Stick 4K Max 2.Gen

Logs

No response

FFmpeg logs

No response

Media info of the file

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5@Main
HDR format                               : Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, no metadata compression, HDR10 compatible / SMPTE ST 2086, Version HDR10, HDR10 compatible / SMPTE ST 2094 App 4, Version HDR10+ Profile B, HDR10+ Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 h 55 min
Bit rate                                 : 7 147 kb/s
Width                                    : 3 836 pixels
Height                                   : 1 604 pixels
Display aspect ratio                     : 2.39:1
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 2)
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.048
Stream size                              : 5.79 GiB (83%)
Writing library                          : x265 3.6+1-aa7f602f7:[Windows][GCC 13.2.0][64 bit] 10bit
Encoding settings                        : cpuid=1176575 / frame-threads=5 / numa-pools=32 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3836x1604 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=5 / no-allow-non-conformance / repeat-headers / annexb / aud / no-eob / no-eos / hrd / info / hash=0 / temporal-layers=0 / no-open-gop / min-keyint=24 / keyint=240 / gop-lookahead=0 / bframes=16 / b-adapt=0 / b-pyramid / bframe-bias=0 / rc-lookahead=40 / lookahead-slices=8 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=4 / tu-intra-depth=4 / limit-tu=3 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs=1 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=-1:-1 / no-sao / no-sao-non-deblock / rd=3 / selective-sao=0 / early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=4.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=21.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=12500 / vbv-bufsize=25000 / vbv-init=0.9 / min-vbv-fullness=50.0 / max-vbv-fullness=80.0 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / aq-strength=1.00 / no-cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(10000000,50) / cll=970,398 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / hdr10 / hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass / no-mcstf / no-sbrc
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.0050 cd/m2, max: 1000 cd/m2
Maximum Content Light Level              : 970
MaxCLL_Original                          : 970 cd/m2
Maximum Frame-Average Light Level        : 398
MaxFALL_Original                         : 398 cd/m2

Audio #1
ID                                       : 2
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Codec ID                                 : A_EAC3
Duration                                 : 1 h 56 min
Bit rate mode                            : Constant
Bit rate                                 : 640 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 532 MiB (7%)
Title                                    : EAC3 5.1
Language                                 : German
Service kind                             : Complete Main
Default                                  : Yes
Forced                                   : No
Dialog Normalization                     : -31 dB
compr                                    : -0.28 dB
dialnorm_Average                         : -31 dB
dialnorm_Minimum                         : -31 dB
dialnorm_Maximum                         : -31 dB

Audio #2
ID                                       : 3
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Codec ID                                 : A_EAC3
Duration                                 : 1 h 56 min
Bit rate mode                            : Constant
Bit rate                                 : 640 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 532 MiB (7%)
Title                                    : EAC3 5.1
Language                                 : English
Service kind                             : Complete Main
Default                                  : No
Forced                                   : No
Dialog Normalization                     : -31 dB
compr                                    : -0.28 dB
dialnorm_Average                         : -31 dB
dialnorm_Minimum                         : -31 dB
dialnorm_Maximum                         : -31 dB

Text #1
ID                                       : 4
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 1 h 54 min
Compression mode                         : Lossless
Title                                    : Forced (SRT)
Language                                 : German
Default                                  : Yes
Forced                                   : No

Text #2
ID                                       : 5
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 1 h 55 min
Compression mode                         : Lossless
Title                                    : Full (SRT)
Language                                 : German
Default                                  : No
Forced                                   : No

Text #3
ID                                       : 6
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 1 h 11 min
Compression mode                         : Lossless
Title                                    : Forced (SRT)
Language                                 : English
Default                                  : No
Forced                                   : No

Text #4
ID                                       : 7
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 1 h 55 min
Compression mode                         : Lossless
Title                                    : Full (SRT)
Language                                 : English
Default                                  : No
Forced                                   : No

Text #5
ID                                       : 8
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 1 h 55 min
Compression mode                         : Lossless
Title                                    : Full SDH (SRT)
Language                                 : English
Default                                  : No
Forced                                   : No

Menu
00:00:00.000                             : Kapitel 01
00:04:40.280                             : Kapitel 02
00:12:54.107                             : Kapitel 03
00:21:07.933                             : Kapitel 04
00:29:47.119                             : Kapitel 05
00:35:26.124                             : Kapitel 06
00:42:49.233                             : Kapitel 07
00:48:40.251                             : Kapitel 08
00:58:03.480                             : Kapitel 09
01:05:49.279                             : Kapitel 10
01:14:43.145                             : Kapitel 11
01:21:52.908                             : Kapitel 12
01:26:47.869                             : Kapitel 13
01:34:43.011                             : Kapitel 14
01:47:17.097                             : Kapitel 15
01:49:33.233                             : Kapitel 16

Application version

0.17.5

Device information

Fire TV Stick 4K 1.Gen and Fire TV Stick 4K Max Gen.2

Android version

Fire OS 6.7.0.5. and Fire OS 8.1.1.9.

Jellyfin server version

10.9.11

Dennis12345678901 commented 2 months ago

Here is a video with Dolby Vison what can be played with Jelly normally. As I thought, no HDR10+ is stored in the metadata. This means that as soon as Dolby Vision and HDR10+ are available, there are tests with TVs that only dolby vision can spend something wrong. I hope the problem is easy to solve because Jelly seems to be a really good thing :-)

`Video ID : 1 Format : HEVC Format/Info : High Efficiency Video Coding Format profile : Main 10@L5@Main HDR format : Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, no metadata compression, HDR10 compatible / SMPTE ST 2086, Version HDR10, HDR10 compatible / SMPTE ST 2086, Version HDR10, HDR10 compatible Codec ID : V_MPEGH/ISO/HEVC Duration : 1 h 50 min Width : 3 840 pixels Height : 1 604 pixels Display aspect ratio : 2.39:1 Frame rate mode : Constant Frame rate : 23.976 (24000/1001) FPS Color space : YUV Chroma subsampling : 4:2:0 (Type 2) Bit depth : 10 bits Writing library : x265 3.6+1-aa7f602f7:[Windows][GCC 13.2.0][64 bit] 10bit Encoding settings : cpuid=1176575 / frame-threads=5 / numa-pools=32 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x1604 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=5 / no-allow-non-conformance / repeat-headers / annexb / aud / no-eob / no-eos / hrd / info / hash=0 / temporal-layers=0 / no-open-gop / min-keyint=24 / keyint=240 / gop-lookahead=0 / bframes=16 / b-adapt=0 / b-pyramid / bframe-bias=0 / rc-lookahead=40 / lookahead-slices=8 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=4 / tu-intra-depth=4 / limit-tu=3 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs=1 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=-1:-1 / no-sao / no-sao-non-deblock / rd=3 / selective-sao=0 / early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=4.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=21.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=15000 / vbv-bufsize=25000 / vbv-init=0.9 / min-vbv-fullness=50.0 / max-vbv-fullness=80.0 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / aq-strength=1.00 / no-cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1) / cll=636,374 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / hdr10 / hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass / no-mcstf / no-sbrc Default : Yes Forced : No Color range : Limited Color primaries : BT.2020 Transfer characteristics : PQ Matrix coefficients : BT.2020 non-constant Mastering display color primaries : Display P3 Mastering display luminance : min: 0.0001 cd/m2, max: 1000 cd/m2 Maximum Content Light Level : 636 MaxCLL_Original : 636 cd/m2 Maximum Frame-Average Light Level : 374 MaxFALL_Original : 374 cd/m2

Audio #1 ID : 2 Format : DTS XLL Format/Info : Digital Theater Systems Commercial name : DTS-HD Master Audio Codec ID : A_DTS Duration : 1 h 50 min Bit rate mode : Variable Channel(s) : 6 channels Channel layout : C L R Ls Rs LFE Sampling rate : 48.0 kHz Frame rate : 93.750 FPS (512 SPF) Bit depth : 16 bits Compression mode : Lossless Title : DTS-HD MA 5.1 Language : German Default : Yes Forced : No

Audio #2 ID : 3 Format : DTS XLL Format/Info : Digital Theater Systems Commercial name : DTS-HD Master Audio Codec ID : A_DTS Duration : 1 h 50 min Bit rate mode : Variable Channel(s) : 6 channels Channel layout : C L R Ls Rs LFE Sampling rate : 48.0 kHz Frame rate : 93.750 FPS (512 SPF) Bit depth : 16 bits Compression mode : Lossless Title : DTS-HD MA 5.1 Language : Arabic Default : No Forced : No

Text #1 ID : 4 Format : ASS Codec ID : S_TEXT/ASS Codec ID/Info : Advanced Sub Station Alpha Duration : 1 h 41 min Compression mode : Lossless Title : Forced (SRT) Language : German Default : Yes Forced : No

Text #2 ID : 5 Format : PGS Codec ID : S_HDMV/PGS Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs Duration : 1 h 41 min Title : Forced (PGS) Language : German Default : No Forced : No

Text #3 ID : 6 Format : PGS Codec ID : S_HDMV/PGS Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs Duration : 1 h 41 min Title : Full (PGS) Language : German Default : No Forced : No

Menu 00:00:00.000 : Kapitel 01 00:09:24.564 : Kapitel 02 00:18:49.128 : Kapitel 03 00:27:00.285 : Kapitel 04 00:36:46.204 : Kapitel 05 00:45:45.409 : Kapitel 06 00:56:18.041 : Kapitel 07 01:03:57.167 : Kapitel 08 01:13:37.747 : Kapitel 09 01:22:51.633 : Kapitel 10 01:32:30.879 : Kapitel 11 01:41:44.765 : Kapitel 12`

wuze0322 commented 2 months ago

I'm playing a video with Dolby Atmos, but there's only picture and no sound. I'm not sure if it's the same issue.

Dennis12345678901 commented 2 months ago

I don't think it's the same problem. For me, Atmos is output with Jellyfin. You have to select audio pass through. It's best to test everything with Kodi on the same hardware. You can adjust a lot there, ideal for testing.

larskruckow commented 2 months ago

I believe I have the same issue with videos that are both Dolby Vision(DV) and HDR10. My TV can play both but my old NVidia Shield doesn't support DV. All videos with both are labelled as Dolby Vision in the UI and I get a black screen when playing, lowering bitrate to force a transcode allows it to playback, without any HDR. Videos with just HDR10 playback just fine, and videos with only DV well they have a black screen. In the browser on my laptop the same videos with both DV and HDR10 are not labelled with DV. It seems the android TV app prefers DV even though it cannot play it properly. Perhaps allowing users to choose either DV or HDR10 could help the situation.

Dennis12345678901 commented 2 months ago

Yes, basically an option just needs to be built into Jellyfin where you can select which dynamic HDR formats the TV can play. This option is also included in Kodi. I hope the developer is reading this and can fix the whole thing with an update. Oh yes, Dolby Vision is also displayed on my TV, although the picture remains black (because 99% of the time this has something to do with HDR10+, which is also stored in the metadata).

CollinHerber commented 1 month ago

Having the same issue with my HDR and Dolby videos on my firestick

CollinHerber commented 1 month ago

Small update. If you switch audio output to downmix to stereo it will play the video for like 5 seconds and then fail out. So the problem is the audio if I had to guess. Hopefully that helps

Dennis12345678901 commented 1 month ago

No, I can't imagine that audio is the problem. Does your TV only support Dolby Vision or also HDR10+? If it only supports Dolby Vision, try playing a film that only has Dolby Vision and then a film that contains Dolby Vision and HDR10+. Then report what happened with both films.

Paolo-N commented 1 month ago

Small update. If you switch audio output to downmix to stereo it will play the video for like 5 seconds and then fail out. So the problem is the audio if I had to guess. Hopefully that helps

I tried and in this case I got a Player Error and nothing starts. I think I'm having the same problem, Dolby Vision and HDR0+.

lucaslugao commented 1 month ago

Can confirm, media with DOVIWithHDR10 + DDP Dolby Atmos will show a black screen on the recent Google TV Streamer and s95b. The audio plays correctly with my soundbar detecting dolby atmos.

ABalanuta commented 1 month ago

Can confirm that it works on Chromecast with Google TV (4K) but not on the new Google TV Streamer (4K)

000al000 commented 1 month ago

Same problem on Fire stick 4K, but working on hisense smart tv. Version both 0.17.7

Alex-G commented 1 month ago

I have a samsung TV witch only supports HDR10+ not dolbyvision, If I play a video that contains bouth DV and HDR10+ it shows a black sreen

robalexj commented 1 month ago

I'm seeing this same issue with the "Google TV Streamer (4K)" with an LG C2. Only sound and black screen.

ABalanuta commented 1 month ago

From what I found, this is an issue with the Profiles. Kodi has an option to force profile translation 8.1 to 7 (if I am not mistaken). Further reading: https://forum.jellyfin.org/t-choose-between-dv-hdr

KingCheni commented 2 weeks ago

I have the same problem. So how to solve it?

NickPaul41 commented 2 weeks ago

I ran into this last night and started converting all of my DV files using this guide on the forums.

https://forum.jellyfin.org/t-converting-dolby-vision-to-hdr10

Not exactly a solution to the problem. Ideally clients would fail more gracefully... but it works.