Some IMF verification problems when transwrapping video MXF files #85
Replies: 1 comment 4 replies
-
The essence descriptor in the CPL is an XML representation of the essence descriptor in the MXF file. If you re-wrap the file then the XML also needs to be updated because the re-wrap is not one-to-one. bmx uses it's own TrackID numbering scheme, which is why the LinkedTrackID changed to 1001. I'm assuming the AspectRatio is set to 16:9 and that will explain why bmx fixes the ActiveFormatDescriptor value to be 68. The InstanceID properties are low-level identifiers for the metadata sets in the MXF file that change everytime a new file is written. You should be able to manually change the values to match what's in the new MXF file. There are a couple open source IMF tools listed here which should help you (Photon is listed as well). There is also the SMPTE MXF Dump online tool that you can use to experiment with to test what you need to get from the other tools. |
Beta Was this translation helpful? Give feedback.
-
I'm doing some testing on creating HDR10 IMF packages from Davinci Resolve. This is a bit tricky, because Resolve doesn't allow setting of all the relevant metadata that needs to go in the CPL. Notably, I'm creating a video track which is P3D65 limited but in a rec.2020 container, which Resolve writes out with metadata indicating just rec.2020. Additionally, I need to add HDR metadata (MaxFALL and MaxCLL) to the CPL.
To this end, I find myself doing some manual surgery on the files in the IMF. Adding the metadata to the CPL is simple, I just need to update the other XML files in the IMF to reflect the new hash values, etc., but when I try to update the Mastering Monitor Color Volume settings, this clashes with the metadata in the video MXF file, and Photon validation fails.
This all lead me to finding bmx, which I have to say is pretty great, and promises to do exactly what I need, in that I can transwrap the video MXF file while modifying its metadata, so that it'll correspond to the metadata I'm setting in the CPL. In my test, I used it like this:
bmxtranswrap -t imf --display-primaries 34000,16000,13250,34500,7500,3000 --display-white-point 15635,16450 --display-max-luma 10000000 --display-min-luma 1 -o {Type}_{fp_uuid}.mxf TEST_IMF/VIDEO_13179de4-4e86-4928-a114-ab83a4568d4f.mxf
And then I swapped out the original MXF file for the new one, calculated its hash, added that to the relevant XML files, updated everything so it matches, and, lo and behold, Photon validation kind of works for this, in that the Mastering Monitor Color Volume settings now match and verify correctly, but it fails on some new metadata I've not seen it complain about before. This is what Photon says:
Now, I have no idea where these UUIDs are coming from, nor why the ActiveFormatDescriptor and LinkedTrackIDs are different. So, my question is, how can I get the correct UUIDs to use in my CPL EssenceDescriptorList so that this will check out, and how can I make bmx transwrap copy the ActiveFormatDescriptor and LinkedTrackID correctly, or, if not, can I just set the ActiveFormatDescriptor, for instance, in the CPL file, to what it says it is in the MXF file, assuming this is metadata that's embedded in the MXF file somehow?
Sorry for the long data dump, and thank you again for bmx, it looks like a great set of tools that I'm sure I'm going to get a lot of use out of.
Beta Was this translation helpful? Give feedback.
All reactions