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 Dolby Vision playback on webOS #5553

Merged
merged 3 commits into from
Jul 15, 2024

Conversation

GeorgeH005
Copy link
Contributor

Force DoVi profile 8 support for LG TVs (CX etc.) that do support it but report otherwise.

Changes
browserDeviceProfile to force profile 8 support for TVs that support DoVi and run web0s version 5 and up.

Issues

Fixes
jellyfin/jellyfin#11705

@GeorgeH005 GeorgeH005 requested a review from a team as a code owner May 18, 2024 23:11
@thornbill thornbill added enhancement Improve existing functionality or small fixes p: webos This PR or issue mainly concerns WebOS clients playback This PR or issue mainly concerns playback labels May 19, 2024
@gnattu
Copy link
Member

gnattu commented May 19, 2024

We might need additional workarounds for webOS. A lot of users reported that webOS has problem seeking with fMP4 container and webOS can playback hevc in TS container as well. My question now would be that does webOS playback dolby vision in hls with ts container as well? If that is the case we may override the default container to prefer ts on webOS and push hevc support for ts containers.

@GeorgeH005
Copy link
Contributor Author

@gnattu I can start playing around with that on my C3, see where it takes us. I will keep you posted.

@GeorgeH005
Copy link
Contributor Author

@gnattu I am starting to believe ffmpeg can't passthrough DoVi metadata when remuxing to ts. I might be mistaken, but I haven't been able to make a mpegts file that will playback properly. If you have any advice for how I am to do that, I will be happy to test. So far only mp4 has worked for me

@854562
Copy link
Contributor

854562 commented May 19, 2024

This PR aims at WebOS >=5, but my C9 (2019) running WebOS 4.9.7 seems to play DoVi profile 8 content just fine (using LG's internal media player). In mp4 that is, as with remuxing to TS using ffmpeg I'm hitting the same roadblock as @GeorgeH005.

@GeorgeH005
Copy link
Contributor Author

@854562 I didn't want to blindly include all past webOS TVs, as I can't test with all of them. I had info up until the 2020 lineup. I will commit a change to include the 2019 lineup. Just making sure, it doesn't currently work with jellyfin v10.9.2, correct?

If anyone stumbles upon this pull request with an even older TV that has been tested and supports DoVi profile 8 but isn't working with the current jellyfin version, please drop a comment.

@854562
Copy link
Contributor

854562 commented May 19, 2024

Just making sure, it doesn't currently work with jellyfin v10.9.2, correct?

That's correct. A remux is triggered for mkv files but the player falls back to HDR10 anyway.

@GeorgeH005
Copy link
Contributor Author

@gnattu Just occured to me, is it possible that the problematic models have an issue with dvh1.08.09 and could be ok with something like dvh1.08.06? I know that it isn't unreasonable to assume that there are going to be 60fps media somewhere, and 4K media surpass the 25mbps "Main Tier" bitrate (Dolby Spec) all the time, but couldn't we have that as a fallback if it does actually report correctly? Just to avoid any hacky overrides.

@GeorgeH005
Copy link
Contributor Author

GeorgeH005 commented May 19, 2024

Just making sure, it doesn't currently work with jellyfin v10.9.2, correct?

That's correct. A remux is triggered for mkv files but the player falls back to HDR10 anyway.

@854562 Very well. Will push that now. Thanks!

@jellyfin-bot
Copy link
Collaborator

Cloudflare Pages deployment

Latest commit 26081ce
Status ✅ Deployed!
Preview URL https://bfabadc6.jellyfin-web.pages.dev
Type 🔀 Preview

View build logs
View bot logs

@lgndvd
Copy link

lgndvd commented May 20, 2024

@gnattu Just occured to me, is it possible that the problematic models have an issue with dvh1.08.09 and could be ok with something like dvh1.08.06? I know that it isn't unreasonable to assume that there are going to be 60fps media somewhere, and 4K media surpass the 25mbps "Main Tier" bitrate (Dolby Spec) all the time, but couldn't we have that as a fallback if it does actually report correctly? Just to avoid any hacky overrides.

Hi @GeorgeH005, some further info:

  • just checked my DV8 files and Mediainfo reports all of them as Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, with minor differences about HDR10 / SMPTE compatibility;
  • re-checked DV8 support on my LG CX playing some files locally via USB: can confirm native support for TS and MP4 files.

I also found some discussions on GitHub (mentioned also on jellyfin-web repo), about different DV8 profiles and LG OLEDs behaviour (C8, CX).

Hope any of these helps.

@GeorgeH005
Copy link
Contributor Author

@lgndvd I will take a look at that discussion. My problem at the moment is the fact that I can't seem to get ffmpeg to remux an mkv containing Dolby Vision to mpegts without losing the DoVi metadata. If you remuxed those files yourself I would love to read how you did it.

@gnattu
Copy link
Member

gnattu commented May 20, 2024

@lgndvd I will take a look at that discussion. My problem at the moment is the fact that I can't seem to get ffmpeg to remux an mkv containing Dolby Vision to mpegts without losing the DoVi metadata. If you remuxed those files yourself I would love to read how you did it.

If you use jellyfin-ffmpeg you should not lose anything?

@GeorgeH005
Copy link
Contributor Author

@gnattu I was using ffmpeg6 from macports to make those files at the time. Although I did modify our existing code to allow DoVi only for ts container and had the same result. I will retry properly in a few hours.

Also the linked discussion has some interesting testing about the differences of dvh1 and dvhe when it comes to seeking performance. I will play around with those as well, see if we gain anything by using one instead of the other. Although apple not recommending the latter might be a problem if we actually do gain something. Will be back in a few hours with the results.

@lgndvd
Copy link

lgndvd commented May 20, 2024

@lgndvd I will take a look at that discussion. My problem at the moment is the fact that I can't seem to get ffmpeg to remux an mkv containing Dolby Vision to mpegts without losing the DoVi metadata. If you remuxed those files yourself I would love to read how you did it.

@GeorgeH005 yes, I do them with tsMuxerGUI nightly: shortly, I drag and drop my MKV DV sources, select video+audio tracks to be included, choose "TS muxing" as output and, usually in a couple of minutes, I get my working TS file. This output file direct plays flawlessly both locally and with Jellyfin 10.8.x.

I do some additional work outside of tsMuxer only when muxing from multiple sources and/or dealing with DTS audio (not supported by CX). I also don't include subtitles, because afaik TS supports only bitmap, so I pass them as external SRTs.

I also experimented with some mp4 workflows (using ffmpeg GUIs), and at some point had success...but the process was usually slower and generally more cumbersome when dealing with multiple tracks metadata...so I went back to my good old TS workflow (quicker, idiot-proof).

@GeorgeH005
Copy link
Contributor Author

GeorgeH005 commented May 20, 2024

@lgndvd The problem is that we need ffmpeg to be able to do that conversion, because that is what is being used to create the fragments comprising the stream. If that can't passthrough the DoVi metadata to the resulting mpegts fragments I don't believe there is much we can do on the jellyfin side of things.

@GeorgeH005
Copy link
Contributor Author

@gnattu Using jellyfin-ffmpeg I still can't get an mpegts file with DoVi metadata. Here is what I get using -vbsf hevc_mp4toannexb -c copy -sn -strict -2 <filename>.ts:

Video
ID                                       : 256 (0x100)
Menu ID                                  : 1 (0x1)
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@Main
Codec ID                                 : 36
Duration                                 : 47 min 22 s
Bit rate                                 : 19.2 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 50.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.046
Stream size                              : 6.36 GiB (94%)
Color range                              : Full

Converting with the same exact arguments to mp4 gives me this:

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5.1@Main
HDR format                               : Dolby Vision, Version 1.0, Profile 5, dvhe.05.09, BL+RPU, no metadata compression
Codec ID                                 : hev1
Codec ID/Info                            : High Efficiency Video Coding
Duration                                 : 47 min 22 s
Source duration                          : 47 min 22 s
Bit rate                                 : 19.2 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 50.000 FPS
Minimum frame rate                       : 50.000 FPS
Maximum frame rate                       : 16 000.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.046
Stream size                              : 6.36 GiB (96%)
Source stream size                       : 6.36 GiB (96%)
Color range                              : Full
Menus                                    : 3
mdhd_Duration                            : 2842280
Codec configuration box                  : hvcC+dvcC

If you have any suggestions as to which arguments I should use, I would be very happy to hear them. Didn't get a chance to play around with the codec tags by the way. Will try to see if safari can play back anything tagged hev1 or dvhe first and test at the Tv tomorrow.

@gnattu
Copy link
Member

gnattu commented May 21, 2024

@GeorgeH005 Well you should not use a static file for testing because we applied the dolby vision data copy for hlsenc: https://github.com/jellyfin/jellyfin-ffmpeg/blob/jellyfin/debian/patches/0033-add-hevc-dovi-sidedata-to-hlsenc.patch

Did you try jellyfin-ffmpeg on jellyfin with remuxing to ts? Did that work?

@GeorgeH005
Copy link
Contributor Author

GeorgeH005 commented May 21, 2024

@gnattu Tried to modify this line to -ts instead of -mp4, as well as trying a static file as described above:

To be honest, I haven't worked out yet how those conditions work, but I assumed that if I modified that, it would try to remux to ts. While it did remux seemingly to ts based on the logs, the metadata was not passed through and the colors were off.

@lgndvd
Copy link

lgndvd commented May 21, 2024

@gnattu Using jellyfin-ffmpeg I still can't get an mpegts file with DoVi metadata. Here is what I get using -vbsf hevc_mp4toannexb -c copy -sn -strict -2 <filename>.ts:


Video

ID                                       : 256 (0x100)

Menu ID                                  : 1 (0x1)

Format                                   : HEVC

Format/Info                              : High Efficiency Video Coding

Format profile                           : Main 10@L5.1@Main

Codec ID                                 : 36

Duration                                 : 47 min 22 s

Bit rate                                 : 19.2 Mb/s

Width                                    : 3 840 pixels

Height                                   : 2 160 pixels

Display aspect ratio                     : 16:9

Frame rate                               : 50.000 FPS

Color space                              : YUV

Chroma subsampling                       : 4:2:0

Bit depth                                : 10 bits

Bits/(Pixel*Frame)                       : 0.046

Stream size                              : 6.36 GiB (94%)

Color range                              : Full

Converting with the same exact arguments to mp4 gives me this:


Video

ID                                       : 1

Format                                   : HEVC

Format/Info                              : High Efficiency Video Coding

Format profile                           : Main 10@L5.1@Main

HDR format                               : Dolby Vision, Version 1.0, Profile 5, dvhe.05.09, BL+RPU, no metadata compression

Codec ID                                 : hev1

Codec ID/Info                            : High Efficiency Video Coding

Duration                                 : 47 min 22 s

Source duration                          : 47 min 22 s

Bit rate                                 : 19.2 Mb/s

Width                                    : 3 840 pixels

Height                                   : 2 160 pixels

Display aspect ratio                     : 16:9

Frame rate mode                          : Variable

Frame rate                               : 50.000 FPS

Minimum frame rate                       : 50.000 FPS

Maximum frame rate                       : 16 000.000 FPS

Color space                              : YUV

Chroma subsampling                       : 4:2:0

Bit depth                                : 10 bits

Bits/(Pixel*Frame)                       : 0.046

Stream size                              : 6.36 GiB (96%)

Source stream size                       : 6.36 GiB (96%)

Color range                              : Full

Menus                                    : 3

mdhd_Duration                            : 2842280

Codec configuration box                  : hvcC+dvcC

If you have any suggestions as to which arguments I should use, I would be very happy to hear them. Didn't get a chance to play around with the codec tags by the way. Will try to see if safari can play back anything tagged hev1 or dvhe first and test at the Tv tomorrow.

@GeorgeH005 when approaching ffmpeg, I learned that -strict unofficial works best when dealing with Dolby Vision metadata. From what I'm reading, -strict -2 should be the equivalent of -strict experimental value.

If I remember correctly, I used -strict unofficial to get some results in FFMPEG Batch Tool Converter (even if regarded mp4 testing), otherwise I wouldn't get any DV metadata.

Tomorrow I could take a look to my past ffmpeg arguments, if needed (writing this from my phone). Please consider that my knowledge is very limited, just sharing what I learned with reading, trial and error during last year.

@gnattu
Copy link
Member

gnattu commented May 21, 2024

@GeorgeH005 @lgndvd I looked back at the FFmpeg code and found that mpegtsenc.c does not handle Dolby Vision data. So, remuxing using TS on the fly is currently out of the question. However, we still need to enable support for videos in TS containers because many TVs support them, and currently mp4 is the only allowed container. Additionally, a lot of TS files are actually in M2TS mode, which is used by Blu-ray discs. Blocking these files will, force a remux that could be avoided since they can be directly played.

@nyanmisaka
Copy link
Member

@GeorgeH005 Can you try this new jellyfin-ffmpeg? jellyfin/jellyfin-ffmpeg#393

@GeorgeH005
Copy link
Contributor Author

GeorgeH005 commented May 21, 2024

@nyanmisaka Works beautifully!! And seeking with ts does indeed work much better. Will play around with the other mp4 codec tags now.

@lgndvd
Copy link

lgndvd commented May 21, 2024

@GeorgeH005 @lgndvd I looked back at the FFmpeg code and found that mpegtsenc.c does not handle Dolby Vision data. So, remuxing using TS on the fly is currently out of the question. However, we still need to enable support for videos in TS containers because many TVs support them, and currently mp4 is the only allowed container. Additionally, a lot of TS files are actually in M2TS mode, which is used by Blu-ray discs. Blocking these files will, force a remux that could be avoided since they can be directly played.

Hi, just finished doing some additional testing:

FFmpeg: unfortunately, can confirm that TS and M2TS containers do not retain Dolby Vision metadata when using FFmpeg. Tested using version 6.1.1 Essentials x64 (within FFmpeg Batch AV Converter 3.0.5 on Windows) and different arguments, but per MediaInfo it's always a no-go.

tsMuxer: in addition to TS remuxing, I tested also M2TS. Dolby Vision metadata still gets injected (both Profile 5 and 8), but playback on LG CX had some weird behaviour. I remuxed three .m2ts files, one with DV5 metadata and two with DV8 metadata:

  1. The DV5 one played correctly via USB, with Dolby Vision triggering.
  2. One of the DV8 files didn't start, giving me infinite spinning wheel (after some time, "file format not recognized"). For this one, MediaInfo reports: Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, extended metadata compression, HDR10 compatible / SMPTE ST 2094 App 4, Version HDR10+ Profile B, HDR10+ Profile B compatible
  3. The other one with DV8 metadata (but slightly different MediaInfo: Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, extended metadata compression, HDR10 compatible / SMPTE ST 2086, Version HDR10, HDR10 compatible) played correctly via USB.
  • Direct playing via DLNA worked instead flawlessly with all .m2ts files, triggering Dolby Vision. I tested DLNA from two different sources, Jellyfin and router NAS sharing.

Recap and conclusions: LG CX supports DV playback natively via MP4 (confirmed), TS (confirmed), maybe also M2TS (mixed results, needs further testing)...but FFmpeg seems unable to remux into mpegts retaining DoVi metadata.

To sum it up, as ideal behaviour Jellyfin should be able to:

  • remux DoVi .mkv files into something that webOS / LG OLED clients can digest (probably MP4, due to the above issues...maybe one day also TS?);
  • do this for both DV5 and DV8 metadata, fixing current 10.9.x DV8 regression (aka getting HDR fallback for any container, even previously direct playing ones in 10.8.x);
  • possibly, skip remuxing for DoVi .mp4/.ts files (potentially also .m2ts) due to native support.

I don't know if any of these are viable, but I hope so. Keep up the good work!

@nyanmisaka
Copy link
Member

Hi, just finished doing some additional testing:

FFmpeg: unfortunately, can confirm that TS and M2TS containers do not retain Dolby Vision metadata when using FFmpeg. Tested using version 6.1.1 Essentials x64 (within FFmpeg Batch AV Converter 3.0.5 on Windows) and different arguments, but per MediaInfo it's always a no-go.

@lgndvd Two of our custom patches are not available in vanilla FFmpeg to support DOVI in MPEG-TS & HLS.

You can try the latest test build here (https://github.com/jellyfin/jellyfin-ffmpeg/pull/393/checks -> Artifacts).

@gnattu
Copy link
Member

gnattu commented Jul 21, 2024

I think the options.supportsDolbyVision property is set by the LG client and for some reason that option is not set. We can add the same assumption to the supportsDolbyVision to force enable this on webOS though, if we are confident that all LG TVs really supports Dolby Vision

@GeorgeH005
Copy link
Contributor Author

I think the options.supportsDolbyVision property is set by the LG client and for some reason that option is not set. We can add the same assumption to the supportsDolbyVision to force enable this on webOS though, if we are confident that all LG TVs really supports Dolby Vision

That should affect all users though shouldn't it? At least all C2 webOS 23 users should be affected. I don't know if the other reports ran webOS 23 though.

@GeorgeH005
Copy link
Contributor Author

I don't know about forcing it. It's your call but it doesn't really feel right. I don't know if the entirety of LG's lineup (at least from a year onwards) supports Dolby Vision.

@gnattu
Copy link
Member

gnattu commented Jul 21, 2024

That should affect all users though shouldn't it?

I have no idea why that option is not set for a specific user because it really should. But we are already doing the same thing for all Apple devices even though some of them does not really support dolby vision, but Apple has its own fallback mechanisms in Safari and the playback won't crash if the device does not support that, not sure what will happen on webOS though.

function supportsDolbyVision(options) {
return options.supportsDolbyVision ?? (false // eslint-disable-line sonarjs/no-redundant-boolean
|| browser.safari && ((browser.iOS && browser.iOSVersion >= 13) || browser.osx)
);
}

@GeorgeH005
Copy link
Contributor Author

GeorgeH005 commented Jul 21, 2024

That should affect all users though shouldn't it?

I have no idea why that option is not set for a specific user because it really should. But we are already doing the same thing for all Apple devices even though some of them does not really support dolby vision, but Apple has its own fallback mechanisms in Safari and the playback won't crash if the device does not support that, not sure what will happen on webOS though.

function supportsDolbyVision(options) {
return options.supportsDolbyVision ?? (false // eslint-disable-line sonarjs/no-redundant-boolean
|| browser.safari && ((browser.iOS && browser.iOSVersion >= 13) || browser.osx)
);
}

I can attest to the fact that if Dolby Vision isn't triggered, Profile 5 content will look purple and green. If your check above doesn't produce the expected results for previous webOS TVs ( the 2023 lineup didn't have this problem in the first place) profile 8 content will be tagged as dvh1. I don't know what happens in that case, unless we edit our HLS manifests and make them follow the same principle as above, listing dvh1.08 as an optional codec and not tagging the stream at all (if the metadata passthrough is not dependent on that). I am pretty sure it does not need to be explicitly tagged as Dolby Vision is triggered with the built-in player without the tags.

@gnattu
Copy link
Member

gnattu commented Jul 21, 2024

I can attest to the fact that if Dolby Vision isn't triggered, Profile 5 content will look purple and green.

Yes, but we will be checking if the profile is supported later, and we should be safe unless webOS lies about this fact and reports that it plays profile 5 when it does not.

Unless we edit our HLS manifests and make them follow the same principle as above, listing dvh1.08 as an optional codec and not tagging the stream at all (if the metadata passthrough is not dependent on that).

Apple requires all HDR streams in HLS to have an SDR fallback and dolby vision contents should label its profile in the SUPPLEMENTAL-CODECS attribute. We already did the former but not doing the latter yet. I plan to add that in 10.10 some time so that the client will have a better fallback if it really implements the fallback.

@sundermann
Copy link

Reinstalling the app fixed it apparently. cc @RohanKrishna500

Not sure, why this was happening. It just seems weird.

@gnattu
Copy link
Member

gnattu commented Jul 21, 2024

That's good to hear, but I still want to check if video/mp4; codecs="hvc1.2.4.L184 dvh1.08.09" works on LG webOS because that looks better (and should be more accurate) than hardcoding a webOS version. I will push a change with the string anyway because the current one does not really work with Apple devices, and if it also works for LG it would be even better.

@GeorgeH005
Copy link
Contributor Author

I can attest to the fact that if Dolby Vision isn't triggered, Profile 5 content will look purple and green.

Yes, but we will be checking if the profile is supported later, and we should be safe unless webOS lies about this fact and reports that it plays profile 5 when it does not.

What I tried to say here was that if the check doesn't work and we resort to the already existing bypass according to the webOS version, I do not know what the content tagged as dvh1 will look like on a TV that doesn't really support Dolby Vision. It might look like Profile 5 on an unsupported display or normal, can't tell or test.

Apple requires all HDR streams in HLS to have an SDR fallback and dolby vision contents should label its profile in the SUPPLEMENTAL-CODECS attribute. We already did the former but not doing the latter yet. I plan to add that in 10.10 some time so that the client will >have a better fallback if it really implements the fallback.

Nice! I will be following that!

@sundermann
Copy link

It does not seem to trigger reliably though. It seems sometimes it falls back to transcoding to SDR (saying the dynamic range is not supported), then trying to play the same file again triggers dolby vision correctly.

@GeorgeH005
Copy link
Contributor Author

That's good to hear, but I still want to check if video/mp4; codecs="hvc1.2.4.L184 dvh1.08.09" works on LG webOS because that looks better (and should be more accurate) than hardcoding a webOS version. I will push a change with the string anyway because the current one does not really work with Apple devices, and if it also works for LG it would be even better.

Doesn't seem to work sadly. HDR triggers and the stream is tagged as hvc1.

@GeorgeH005
Copy link
Contributor Author

GeorgeH005 commented Jul 21, 2024

Tried video/mp4; codecs="hvc1.2.4.L184 dvhe.08.09" as well, just in case and it didn't work. video/mp4; codecs="dvh1.08.09" worked as expected. Of course all of the above were tested with the "bypass" commented out.

@gnattu
Copy link
Member

gnattu commented Jul 21, 2024

Just keep the bypass checking for now instead of playing with the codec string.

@RohanKrishna500
Copy link

It doesn't work that way... You have a "base stream" that is a normal HDR10 (or HLG or SDR, depends on the "fallback") stream that is then augmented by the extra metadata. There aren't two separate video streams. Even the profile 7 Enhancement Layers that are actually video streams, are just augmentations (overlays I think) , not copies of the same video stream with augmentations applied. That's what I think is true.

ah...i get it i thought it as seperate video streams.

@RohanKrishna500
Copy link

-2

is this the webos app u meant?....also i have this issue where even profile 5 seems to not play in proper colors in the previous jellyfin build whereas other lg users reported it to be fine when remuxed.
also @sundermann do u have the same model as mine(LG A2)?

@megosugit
Copy link

I have a strange issue even with 10.9.8 or 10.9.9:
if I start a DoVi movie from the beginning, it seems to be working fine (watched 30min of a movie yesterday). but if I resume the same movie, it works for a few seconds, or sometimes minutes, and then starts to freeze. Sometimes, it continues by itself after the first freeze, then after the second freeze, it is completely stuck.
If I exit the movie and resume again, it starts with the same issue (works for a few seconds or minutes, then freeze again).

Am I alone with this issue ?

@dmitrylyzo
Copy link
Contributor

@megosugit Try disabling fMP4 on the TV. In 10.9.8 (iirc), it was enabled for webOS by default, but it doesn't work well. In 10.9.9 (this PR), it has been disabled, but you need to disable it manually if you saved settings in 10.9.8.

@megosugit
Copy link

@megosugit Try disabling fMP4 on the TV. In 10.9.8 (iirc), it was enabled for webOS by default, but it doesn't work well. In 10.9.9 (this PR), it has been disabled, but you need to disable it manually if you saved settings in 10.9.8.

It is disabled, when enabled it stays black

@mfizz1
Copy link

mfizz1 commented Aug 7, 2024

@megosugit Try disabling fMP4 on the TV. In 10.9.8 (iirc), it was enabled for webOS by default, but it doesn't work well. In 10.9.9 (this PR), it has been disabled, but you need to disable it manually if you saved settings in 10.9.8.

It is disabled, when enabled it stays black

I raised a similar issue back in the day. I raised it in #5068. I don't believe there is a solution yet.

@RohanKrishna500
Copy link

Am I alone with this issue ?

hey are u able to play dolby vision correctly though?

@megosugit
Copy link

RohanKrishna500

It triggers the Dolby Vision mode on my TV, but then it freezes randomly, so : no I'm not able play DV files correctly. It is a nightmare to watch a movie like this. I have to exit and resume several times the movie, it is bad

@xavier8706
Copy link

From my experience: if you start to play the DV movie from scratch it works normally, but then if you try to skip forward then the screen goes black and it is not possible to move further or resume from where you were... you need to start it again from zero.. That's my experience. And when i looked at the server logs from my Jellyfin server it was trying to remux it but somehow it is not working.

@megosugit
Copy link

From my experience: if you start to play the DV movie from scratch it works normally, but then if you try to skip forward then the screen goes black and it is not possible to move further or resume from where you were... you need to start it again from zero.. That's my experience. And when i looked at the server logs from my Jellyfin server it was trying to remux it but somehow it is not working.

that's what I used to have too, but after a Jellyfin update, I was able to resume so I thought it was fixed. But when I really used it to watch a movie, and not only test a few seconds, I discovered it can resume and play for a few minutes but then it freezes.

So in summary, I thought it was fixed but it is still broken. It is better than before though, but still useless to watch a movie without becoming mad.

@RohanKrishna500
Copy link

RohanKrishna500

It triggers the Dolby Vision mode on my TV, but then it freezes randomly, so : no I'm not able play DV files correctly. It is a nightmare to watch a movie like this. I have to exit and resume several times the movie, it is bad

your tv model?

@megosugit
Copy link

RohanKrishna500

It triggers the Dolby Vision mode on my TV, but then it freezes randomly, so : no I'm not able play DV files correctly. It is a nightmare to watch a movie like this. I have to exit and resume several times the movie, it is bad

your tv model?

LG 77 G3

@RohanKrishna500
Copy link

RohanKrishna500

It triggers the Dolby Vision mode on my TV, but then it freezes randomly, so : no I'm not able play DV files correctly. It is a nightmare to watch a movie like this. I have to exit and resume several times the movie, it is bad

your tv model?

LG 77 G3

ig kodi will work fine for you bro try it

@megosugit
Copy link

RohanKrishna500

It triggers the Dolby Vision mode on my TV, but then it freezes randomly, so : no I'm not able play DV files correctly. It is a nightmare to watch a movie like this. I have to exit and resume several times the movie, it is bad

your tv model?

LG 77 G3

ig kodi will work fine for you bro try it

Do I need to go in developer mode to install it? Looks a bit dodgy.

I had kodi running on a PC previously, I thought jellyfin would be a smarter choice.

@RohanKrishna500
Copy link

RohanKrishna500

It triggers the Dolby Vision mode on my TV, but then it freezes randomly, so : no I'm not able play DV files correctly. It is a nightmare to watch a movie like this. I have to exit and resume several times the movie, it is bad

your tv model?

LG 77 G3

ig kodi will work fine for you bro try it

Do I need to go in developer mode to install it? Looks a bit dodgy.

I had kodi running on a PC previously, I thought jellyfin would be a smarter choice.

It didn't work for me but might work for,and yes its completely safe and easy to install,i would prefer jellyfin over kodi because my media are stored in cloud and I mount it to my jellyfin server,for kodi only offline files

@mtwo
Copy link

mtwo commented Aug 12, 2024

You need to go into developer mode, but it's pretty straightforward and it works well once it's installed.

FYI I think that all of these solutions (Kodi nightlies with Dolby Vision compatibility mode, Jellyfin with the fixes discussed here) only work for a subset of all Dolby Vision content. Profile 7 FEL content (some UHD rips) requires special hardware to view the full enhancement layer. I ended up purchasing a Ugoos box and installing CoreElec (Kodi) onto it, and then connecting it to Jellyfin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improve existing functionality or small fixes p: webos This PR or issue mainly concerns WebOS clients playback This PR or issue mainly concerns playback
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.