[Feature Request] Mux Dolby Vision (profile 5)
I have some Dolby Vision videos in .mp4 and .ts, they are all encoded in Dolby Vision profile 5, which is compatible with QuickTime. However, Apple requires the fourcc tag to be “dvh1” instead of “dvhe” found in many videos. It would be very convenient if Subler could mux them and force “dvh1” tag.
Currently, I have to demux them, and remux tracks using a modified version of Dolby’s official muxer (I changed their source code to force “dvh1”). Then use Subler to edit subtitles and metadata… too complex…
Attachment: sample file info of a Dolby Vision profile 5 video.
Comments (11)
-
-
reporter Changing the fourcc code works for profile 5.
But for new profile 8.4 (shot on iPhone 12), the fourcc is hvc1 which is the same as regular HDR. The difference only lies in the HEVC stream. However, when remuxing using Subler, all DoVi metadata is lost. -
repo owner Can you send me some sample files?
-
reporter Here is a DoVi profile 8.4 sample (shot on iPhone 12 Pro):
https://drive.google.com/file/d/1JsFd_KKU0k5Emgl74PnrwmUfqdFDP9JJ/view?usp=sharing
Here is a sample set for DoVi profile 5 and 8.1 (copyright MBOX):
https://drive.google.com/drive/folders/10Hcx28hoapsYErnfJWVRLpYY4x56w_7B?usp=sharing
The m4v files are compatible with Apple QuickTime. The mp4 files in the zip file are the original files from MBOX.
** According to the copyright law in PRC, the above files can only be used in purpose of study / experiments. Please follow the copyright laws in your own country when using these files.
-
repo owner Almost done with muxing DV from mp4, mov, and mkv.
Do you have some mp4 samples with a EL layer too? All the mp4 I have are only BL+RPU, I need one with BL+EL+RPU.
-
repo owner Here’s a version with preliminary Dolby Vision support: https://subler.org/downloads/Subler-Test.zip
-
reporter I’ve tested the new 1.16.15 version. It works, but there is a trivial issue: both test inputs are constant frame rate, but the output files are variable frame rate. I tried both profile 5 and 8.1 (BL+RPU for both files).
I also tried the official tool mp4muxer from Dolby, it worked correctly.
EDIT: There are more problems with the remuxed profile 8.1 file:
-
Color space info is missing
2. Minor compatibility issue with QuickTime
The second issue also presents with previous versions (up-to 1.16.13), when I try to mux files ripped from Netflix. In fact, majority of Netflix rips suffer from this issue, while all Disney+/Apple TV+/HBO max rips don’t have this problem. I don’t know which part went wrong, but I never encountered this when using mp4muxer from Dolby.
About EL, unfortunately, it seems that only Blu-ray has EL (dual-layer, one for BL, another for EL+RPU). All streaming services only provide BL+RPU media (NF, Disney+, Apple TV/iTunes, and HBO max stream in Dolby Vision profile 5; Hulu streams in DV profile 8.1).
It seems that MakeMKV can make a single-layer BL+EL+RPU file. I may give it a try when I have time.
-
-
repo owner MKV can’t do proper “constant framerate” , mediainfo is lying.
- That’s normal for Dolby Vision 5, but for profile 8 Subler currently reads these metadata only at the container level, so if the original file did not set them there, the muxed file won’t have it either.
- Probably because the original file was dvhe or hev1 with an incomplete hvcC config. Subler does not parse the hevc frames to recreate a complete hvcC config.
-
Do you have some mp4 samples with a EL layer too? All the mp4 I have are only BL+RPU, I need one with BL+EL+RPU.
From my understanding, Apple only supports profile 5/8, neither of which have EL’s. So, I don’t think Subler would need to support that?
-
repo owner Mainly to avoid creating broken files.
-
Gotcha, makes sense. There’s some sample profile 7 MKV’s here - https://www.makemkv.com/download/dvtest/
Has both FEL/MEL samples. Can convert to mp4 with dolby’s tool if needed as well - https://github.com/DolbyLaboratories/dlb_mp4base/blob/master/bin/mp4muxer
- Log in to comment
dvh1 is dolby vision with hevc format. For me I use VIM to change dvhe to dvh1 via terminal script, the same thing as the hev1 vs hvc1. I think that if Subler could use the same routine, it should solve this.