Jellyfin Forum
Converting Dolby Vision to HDR10 - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Guides, Walkthroughs & Tutorials (https://forum.jellyfin.org/f-guides-walkthroughs-tutorials)
+--- Thread: Converting Dolby Vision to HDR10 (/t-converting-dolby-vision-to-hdr10)

Pages: 1 2 3 4 5 6 7 8 9 10 11


RE: Converting Dolby Vision to HDR10 - BotchedMiracle - 2025-01-24

(2025-01-20, 05:07 PM)TheDreadPirate Wrote: Remove "-max_interleave_delta 0" from the command.  That is an optional parameter, not necessary for the DV removal process.

What is it does is ensure that the various video/audio/subtitle tracks are evenly distributed in the output file.  If the source file is poorly muxed and the various tracks are spread out across the file, ffmpeg will keep loading the file into memory until it encounters each track.

https://ffmpeg.org/ffmpeg-formats.html#:~:text=max_interleave_delta%20integer%20(output)

Worked like a charm! Thank you! Nearly had a heart attack and thought I fried my Unraid system during that parity rebuild. Learn from me folks, when working with large files, don't assume a tool is friendly with RAM management.


RE: Converting Dolby Vision to HDR10 - TheDreadPirate - 2025-01-24

FWIW, on MOST files using that parameter isn't a problem.


RE: Converting Dolby Vision to HDR10 - StaticUnit97 - 2025-02-04

Does jellyfin-ffmpeg have the capability to convert from DV profile 7.6 to 8.1?

Some of my movies that are natively DV 7.6 have some scenes with much higher brightness than others. When playing back the title after the conversion to just HDR10 (using jellyfin-ffmpeg), my TV only goes into HDR mode and most scenes, except the ones with the very high brightness, look overly dim. I believe this is because the min and max luminance value are relative to the entire movie, rather than per-scene like DV has.

I recently stumbled upon this repo with a script that combines dovi_tool with the mkvtoolnix tools to strip out only the extra layer that profile 7.6 has on top of 8.1. The resulting mkv is picked up as a DV title by Jellyfin, and importantly, my TV will swap into DV mode.

Does jellyfin-ffmpeg have the ability to just strip out the layer that's special to profile 7.6?


RE: Converting Dolby Vision to HDR10 - gnattu - 2025-02-04

> Does jellyfin-ffmpeg have the capability to convert from DV profile 7.6 to 8.1?

No currently. The base upstream version (7.0.2) is lacking some critical part to alter dovi metadata (even the checksum algorithm implementation is missing), and they made refactor the dovi handling code in 7.1 that made us to implement such thing easier. I planned to have this feature but I cannot do that with current ffmpeg base version. If we are moving to 7.1 in the future I will start to look at this. To do such conversion it does more to just remove the EL, you need to chagne the RPU to make the tone mapping parameters in the RPU profile 8 compatible, and such metadata is checksummed which means you have to update the checksum after modification, and current ffmpeg source we are using does not support the checksum flavor Dolby Vision is using and its dovi parser does not check this checksum at all.


RE: Converting Dolby Vision to HDR10 - StaticUnit97 - 2025-02-04

Thanks for the reply, good to know it's being tracked for the future!


RE: Converting Dolby Vision to HDR10 - TheDreadPirate - 2025-02-05

I've never tried, but I think dovi_tool can convert 7.6 to 8.1 by discarding the enhancement layer.

https://github.com/quietvoid/dovi_tool?tab=readme-ov-file#demux


RE: Converting Dolby Vision to HDR10 - StaticUnit97 - 2025-02-05

Yeah, the link I included above is to a script wraps that plus other dovi_tool commands together to strip out the EL.

Is the jellyfin-ffmpeg command that remove the dovi and hdr10plus meta data just calling out to dovi_tool, or is it modifying the metadata directly itself?


RE: Converting Dolby Vision to HDR10 - gnattu - 2025-02-05

> Is the jellyfin-ffmpeg command that remove the dovi and hdr10plus meta data just calling out to dovi_tool, or is it modifying the metadata directly itself?

It is doing it itself.


RE: Converting Dolby Vision to HDR10 - Neuron5 - 2025-02-14

Based on the earlier comments DV profile 5 will not work with this right?

Code:
Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(pc), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default) (dub)
      Metadata:
        BPS            : 3927721
        DURATION        : 00:39:17.898000000
        NUMBER_OF_FRAMES: 56533
        NUMBER_OF_BYTES : 1157645948
        _STATISTICS_WRITING_APP: mkvmerge v89.0 ('And the Melody Still Lingers On (Night in Tunisia)') 64-bit
        _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      Side data:
        DOVI configuration record: version: 1.0, profile: 5, level: 3, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 0
  S




When I try to convert this file I get the following error.

Code:
/usr/lib/jellyfin-ffmpeg/ffmpeg -y -hide_banner -stats -fflags +genpts+igndts -loglevel error -i "input.mkv" -map 0 -bsf:v hevc_metadata=remove_dovi=1 -codec copy -max_muxing_queue_size 2048 -max_interleave_delta 0 -avoid_negative_ts disabled hdr10_video.mkv


[out#0/matroska @ 0x5559db5212c0] Could not write header (incorrect codec parameters ?): Invalid data found when processing input

My TV does not support DV and I am to understand because this video does not have HDR my TV does not fall back to it?
When I play this file I get sound but no video.


RE: Converting Dolby Vision to HDR10 - TheDreadPirate - 2025-02-14

Correct. This is only meant for profiles 7.6 and 8.1.

For profile 5 there is no "fallback". Profiles 7 and 8 are built on top of HDR10. If a TV does not support those Dolby Vision profiles it will "fallback" to HDR10.

Profile 5 is not built on top of another HDR standard. It is its own proprietary color space.

If you have a capable Jellyfin server that supports HEVC 10 bit, Jellyfin will tone map your profile 5 video to SDR on-the-fly.