Jellyfin Forum
Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - 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: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer (/t-hybrid-remuxes-defaults-to-dv-with-no-fallback-to-the-hdr-base-layer)



Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - altair21 - 2024-11-01

Hi,

I have a bunch of Hybrid Remuxes that I have been trying to play with Jellyfin on WebOS (LG G4), but the issue is since WebOS cant play DV with mkv, we need to remux it to either ts or mp4 which I want to avoid due to space constraints on my end, and I can't make the player default to the base HDR layer. If I disable transcoding, jellyfin just shows the medio not supported error.

Is there a way I can force HDR10 playback on hybrid remuxes?

Jellyfin Server: 10.10.0
Jellyfin WebOS: latest store version (March release)

TV: LG G4


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - gnattu - 2024-11-01

No unfortunately. The WebOS Player is always problematic to us and there is no really "good" solution now. I did mentioned adding a "give up on Dolby Vision" in the issue: option on LG TVs so that HDR10 in mkv can be directly played with fallback: https://github.com/jellyfin/jellyfin-webos/issues/248#issuecomment-2439625292. However, I personally don't like this approach because it is very very not optimal, like, you bought a Dolby Vision TV, and you have a Dolby Vision video, and now you just play the HDR10 fallback layer which is a bit waste of money IMO.


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - altair21 - 2024-11-02

(2024-11-01, 05:59 PM)gnattu Wrote: No unfortunately. The WebOS Player is always problematic to us and there is no really "good" solution now. I did mentioned adding a "give up on Dolby Vision" in the issue: option on LG TVs so that HDR10 in mkv can be directly played with fallback: https://github.com/jellyfin/jellyfin-webos/issues/248#issuecomment-2439625292. However, I personally don't like this approach because it is very very not optimal, like, you bought a Dolby Vision TV, and you have a Dolby Vision video, and now you just play the HDR10 fallback layer which is a bit waste of money IMO.

yeah, I would love to play DV but the issue is even with just remuxing there are a lot of micro stutters in the playback? like I havent seen any dropped frames when I looked at the playback info but you could feel it when the movie was playing which I attributed to remuxing, I ruled out bandwidth issues because I got the usb to gigabit ethernet adapter for the TV to make sure there wasnt any bandwidth issues, and I havent felt these stutters from movies that are playable without the need for transcoding/remuxing.

I would love to have a force HDR10 playback option for webos version, I have a lot of remuxes stored over the years and most of the newer ones that come out are Hybrid in nature, and DV is not really worth for let's say a comedy movie, and we would get to play those remuxes without the need for any transcoding/remuxing which for me is a major plus specially after 10.10.0 added support for PGS subs (really loving it so far!)

P.S. my model is a Lg G4 running the latest webOS version, if this helps, I forgot to add it to my original post


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - altair21 - 2024-11-02

UPDATE: I did try out DV with transcodes being done on a pretty beefy system with a gen 4 SSD, and it works great aside from occasional subs not syncing issue and some stutters, but having an option to entirely disable DV would honestly be a pretty good QoL for peeps like me, hybrid remuxes are the best you can get out there and not just for video/audio quality, with QoL stuff like properly OCR'ed subs, fixing intertitles, chapters etc and having to avoid all of this really sucks. Native play is the smoothest and any option where we can compromise a little with quality while getting a superior experience is preferable to me


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - bitmap - 2024-11-02

Would there be a way to integrate dovi_tool into the transcoding pipeline? Depending on the bitrate, it's a fairly fast solution to either removing or remuxing DV into a compatible container. I run almost entirely AV1 at the moment, so DV is a rarity despite having an LGC1. I just haven't found a large enough difference from HDR/10/+ to make it worthwhile size-wise.

I'm not sure if you can run parallel processes to strip DV + remux, that's not an application I've ever had to deal with. I know that dovi_tool has been a game-changer for me for a number of reasons.


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - altair21 - 2024-11-02

(2024-11-02, 05:57 AM)bitmap Wrote: Would there be a way to integrate dovi_tool into the transcoding pipeline? Depending on the bitrate, it's a fairly fast solution to either removing or remuxing DV into a compatible container. I run almost entirely AV1 at the moment, so DV is a rarity despite having an LGC1. I just haven't found a large enough difference from HDR/10/+ to make it worthwhile size-wise.

I'm not sure if you can run parallel processes to strip DV + remux, that's not an application I've ever had to deal with. I know that dovi_tool has been a game-changer for me for a number of reasons.

would honestly rather prefer to disable it entirely on a per movie/stream basis, maybe an option in the stream settings? I just want it to use the default HDR10 base layer like on Windows with VLC/MPV-HC, like you said I dont see much of a difference between HDR10/DV and I anyways turn down brightness by a lot, so the quality is already getting butchered imo


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - TheDreadPirate - 2024-11-02

(2024-11-02, 05:57 AM)bitmap Wrote: Would there be a way to integrate dovi_tool into the transcoding pipeline? Depending on the bitrate, it's a fairly fast solution to either removing or remuxing DV into a compatible container. I run almost entirely AV1 at the moment, so DV is a rarity despite having an LGC1. I just haven't found a large enough difference from HDR/10/+ to make it worthwhile size-wise.

I'm not sure if you can run parallel processes to strip DV + remux, that's not an application I've ever had to deal with. I know that dovi_tool has been a game-changer for me for a number of reasons.

Starting with Jellyfin-ffmpeg 7.0.2-4, Dolby Vision removal is built into jellyfin-ffmpeg.

https://github.com/jellyfin/jellyfin-ffmpeg/releases/tag/v7.0.2-4
https://github.com/jellyfin/jellyfin-ffmpeg/pull/480

This was done after multiple conversations with gnattu and my struggles getting dovi_tool extracted HDR10 to work with jf-ffmpeg7.  Many thanks to gnattu.  It GREATLY simplified my DV to HDR10 workflow.  The command would look like this.

Code:
ffmpeg -y -hide_banner -stats -fflags +genpts+igndts -loglevel error -i $INPUTFILE -map 0 -bsf:v hevc_metadata=remove_dovi=1 -codec copy -max_muxing_queue_size 2048 -max_interleave_delta 0 -avoid_negative_ts auto HDR10.mkv

The bsf:v is where the magic happens.

Code:
-bsf:v hevc_metadata=remove_dovi=1

Hypothetically, this could be done in real time, but you cannot change the output codec.  I tried to "one line" converting HEVC DV7.6 to AV1 HDR10 in my script, but the bsf wouldn't allow a codec change.

FWIW, upstream ffmpeg master branch also has a similar feature merged.   But, AFAICT, it hasn't made it to a release yet.  I had to build ffmpeg from the git master branch.

https://www.ffmpeg.org/ffmpeg-bitstream-filters.html#dovi_005frpu


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - gnattu - 2024-11-02

First of all, the OP does not really need to remove DOVI because the problem is not DOVI, is the LG TV's HLS player and DOVI triggers the remuxing which makes the issue obvious. The OP is going to modify our web code so that mkv will no longer be blacklisted with DOVI files which will work for him.

For your problem:

(2024-11-02, 05:13 PM)TheDreadPirate Wrote: Hypothetically, this could be done in real time, but you cannot change the output codec.  I tried to "one line" converting HEVC DV7.6 to AV1 HDR10 in my script, but the bsf wouldn't allow a codec change.

I don't even think you have to manually do this anymore starting Jellyfin-ffmpeg 7.0.2-5. The bitstream metadata is not carried over anyway during HEVC to AV1 conversion and the invalid dolby vision configuration records due to codec mismatch will get discarded in 7.0.2-5. So you just do your conversion without worrying about anything.

(2024-11-02, 05:13 PM)TheDreadPirate Wrote: FWIW, upstream ffmpeg master branch also has a similar feature merged.   But, AFAICT, it hasn't made it to a release yet.  I had to build ffmpeg from the git master branch.

It is released with ffmpeg 7.1 but that one only removes the RPU and does not remove BL. I sent a patch to upstream but no one reviewed that unfortunately.


RE: Hybrid Remuxes defaults to DV with no fallback to the HDR Base layer - altair21 - 2024-11-02

really appreciate the help @gnattu, I am building jellyfin webos using my web fork which should hopefully work but I still think this should be a toggle in playback settings, maybe under playback? I did go down a rabbit hole of DV compat threads, and a lot of users like me, who just want stuff to work with minimal pain would appreciate the option, the power users or folks who want the best image quality would already either remux the file themselves or just get a streamer to play on their TV