Jellyfin Forum
Dolby Vision not working on Android ExoPlayer - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Dolby Vision not working on Android ExoPlayer (/t-dolby-vision-not-working-on-android-exoplayer)

Pages: 1 2


Dolby Vision not working on Android ExoPlayer - Bent coin - 2024-02-09

I have 3 different Dolby Vision files that I want to be able to watch on my phone (Google Pixel 7, the only HDR display in my house). I've loaded them all onto my server (Unraid Docker and NVENC hardware acceleration) and attempt to play them through the Android app using the "Integrated Player", which I understand is a fork of ExoPlayer. However, I'm getting strange results with these files, with one working fine, another only outputting audio, and another infinitely loading. All files are 4k HEVC in an MKV container.

The first file is a BD remux of 1917 that I made myself with MakeMKV then compressed with X.265 10-bit in Handbrake. This one infinitely loads, and the server admin dashboard reports that a user is playing it, but the time is stuck on 00:00. The MediaInfo HDR format is below:
   

The second file is another BD remux, also made with MakeMKV but not compressed, Avatar: The Way of Water. This one loads and plays, but displays a black screen. The audio works fine. MediaInfo below:
   

The third file is The Abyss, downloaded from a torrent. This loads fine, plays, and appears to be in HDR. MediaInfo below:
   

My phone doesn't support Dolby Vision, but it does support HDR10+. When using VLC as the external player, all files play fine in HDR. I'm assuming the ones listed as HDR10+ compatible (1917 and The Abyss) play in HDR10+, and Avatar in HDR10, however I can't really tell the difference between HDR10+ and HDR10. But they're all definitely playing in some form of HDR.

Side note: Whenever I close out of a video played with VLC as the external player, Jellyfin reports that playback tracking is disabled as not valid external player was selected.


RE: Dolby Vision not working on Android ExoPlayer - tmsrxzar - 2024-02-09

"The first file is a BD remux of 1917 that I made myself with MakeMKV then compressed with X.265 10-bit in Handbrake."

pretty sure handbrake does not retain dolby vision metadata, provide an output of ffmpeg -i

"The second file is another BD remux, also made with MakeMKV but not compressed"

this probably is dolby vision with hdr fallback, provide an output of ffmpeg -i

"The third file is The Abyss, downloaded from a torrent."

go find the pirate and ask them about this one, not trying to help with pirated material



according to gsmarena the pixel 7 doesn't do Dolby Vision either https://www.gsmarena.com/pixel_7_and_7_pro-review-2492p2.php

Quote:support HDR10, HDR10+, and HLG standards for watching HDR content, but there's no Dolby Vision support. The HDR performance is good, especially on the Pixel 7 Pro, which can get much brighter. Neither display can output the full 10-bit color of HDR content, however, and use dithering to map it to their 8-bit panels.

still an 8-bit panel but 10 bit is mapped, shouldn't affect the actual playback unless it's failing to play the way the firestick is, which also uses exoplayer and has black display on Dolby Vision content


RE: Dolby Vision not working on Android ExoPlayer - Bent coin - 2024-02-09

For 1917. This one doesn't play at all. Handbrake does appear to retain DV metadata with the X.265 encoder: https://handbrake.fr/docs/en/latest/technical/hdr.html

Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1604 [SAR 1:1 DAR 960:401], 23.98 fps, 23.98 tbr, 1k tbn (default)
    Metadata:
      DURATION        : 01:58:59.466000000
    Side data:
      Content Light Level Metadata, MaxCLL=1000, MaxFALL=168
      Mastering Display Metadata, has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
      DOVI configuration record: version: 1.0, profile: 8, level: 6, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 1


For Avatar: The Way of Water. This one plays without video, only audio.

Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn
    Metadata:
      BPS            : 47099500
      DURATION        : 03:12:34.168000000
      NUMBER_OF_FRAMES: 277023
      NUMBER_OF_BYTES : 68024442849
      SOURCE_ID      : 001011
      _STATISTICS_WRITING_APP: mkvmerge v82.0 ('I'm The President') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2024-01-12 12:42:05
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
    Side data:
      DOVI configuration record: version: 1.0, profile: 7, level: 6, rpu flag: 1, el flag: 1, bl flag: 1, compatibility id: 6


For The Abyss. Funnily enough, this is the only one that works properly.

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            : 14833604
      DURATION        : 02:20:17.076000000
      NUMBER_OF_FRAMES: 201808
      NUMBER_OF_BYTES : 15606947070
      _STATISTICS_WRITING_APP: mkvmerge v80.0 ('Roundabout') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2023-12-14 00:05:12
      _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


As I said, all play fine in VLC, but Jellyfin disables playback tracking with VLC as it says "No valid external player detected". As I stated in the original post, I know the Pixel 7 doesn't support Dolby Vision. I'm assuming it should fall back to HDR10 or HDR10+. The problem is that some files aren't playing at all.


RE: Dolby Vision not working on Android ExoPlayer - TheDreadPirate - 2024-02-09

I am pretty certain that the Pixel 7 does HDR. Almost certain my Pixel 6a does. Gets quite bright and looks HDR-y.

Try using Findroid. Do not enable MPV. I'm able to play HDR10 content on my Pixel 6a with Findroid, crank the brightness, and it looks like HDR. I don't have any DV8 content to check if it works or not with that.


RE: Dolby Vision not working on Android ExoPlayer - tmsrxzar - 2024-02-09

maybe i was thinking mediainfo, in any case

pretty sure you are suffering from the same issue as firetv stick
https://github.com/google/ExoPlayer/issues/11096

i was looking to see if your metadata matched up to the issue report when i asked for ffmpeg -i but i guess i asked for the wrong thing

highlights are
not fixable from jellyfin, pretty much only workarounds and hacks

you may have better luck re-encoding without cropping, some users report unusual resolutions do not work when standard ones do
with that i see the one that works is 3840x1600 being divisible by 4, the one that does not with the same dolby vision data is 3840x1604, 1604 not being divisible by 4
this is just based on back and forth i've read between users and developers

forcing transcoding ffmpeg should drop the bad parts because it's not supported HDR10+ or Dolby Vision so it would disappear, but won't look very good

stripping the dolby vision metadata with dovi_tool https://github.com/quietvoid/dovi_tool

this commit to Kodi's code has users reporting the issue is mitigated by removing HDR10+ https://github.com/quietvoid/xbmc/commit/18da398112d94ccb517813f8110a9742747a73bb

that commit being by the same author as dovi_tool sort of makes sense


RE: Dolby Vision not working on Android ExoPlayer - tmsrxzar - 2024-02-09

(2024-02-09, 03:00 AM)TheDreadPirate Wrote: I don't have any DV8 content to check if it works or not with that.

if you're curious grab some samples https://kodi.wiki/view/Samples
but you'll have to dig through to find 8.06, they're not labeled and i'm not sure which are which


RE: Dolby Vision not working on Android ExoPlayer - Bent coin - 2024-02-09

(2024-02-09, 03:00 AM)TheDreadPirate Wrote: I am pretty certain that the Pixel 7 does HDR.  Almost certain my Pixel 6a does.  Gets quite bright and looks HDR-y.

It definitely does support HDR, but only HDR10 and HDR10+, not Dolby Vision.

I'd rather not go through my library and modify things like removing HDR10+ metadata or converting between DV profiles (seems like a time-sink). As everything appears to work in VLC, is there a way I can resolve the "No valid external player detected. Playback tracking disabled." issue that occurs when VLC for Android is selected as the external player?

(2024-02-09, 03:08 AM)tmsrxzar Wrote: maybe i was thinking mediainfo, in any case

I included MediaInfo screenshots in the initial post.


RE: Dolby Vision not working on Android ExoPlayer - tmsrxzar - 2024-02-09

(2024-02-09, 04:10 AM)Bent coin Wrote: As everything appears to work in VLC, is there a way I can resolve the "No valid external player detected. Playback tracking disabled." issue that occurs when VLC for Android is selected as the external player?

not that i am aware of, an alternate player in total (not external player from the jellyfin app) would be needed such as the one TDP suggested
Kodi would work but it's not good on touch devices like Phones


RE: Dolby Vision not working on Android ExoPlayer - Bent coin - 2024-02-09

VLC worked in the past, and now it doesn't. I don't know what changed. I've seen other people report the same problem recently


RE: Dolby Vision not working on Android ExoPlayer - tmsrxzar - 2024-02-09

(2024-02-09, 05:10 AM)Bent coin Wrote: VLC worked in the past, and now it doesn't. I don't know what changed. I've seen other people report the same problem recently

found an unresolved issue from the past that sort of describes this https://github.com/jellyfin/jellyfin-android/issues/195

was a bit more than i was prepared to read but you could have a look