The MXF OP1a writer has an Interoperable Master Format (IMF) flavour that helps with the creation of IMF Track Files (as defined in SMPTE ST 2067-2). The flavour makes it easier to create IMF Track Files by pre-selecting certain required options. However, it does not have knowledge of all the Track Files defined for IMF (across SMPTE ST 2067-2, the IMF Applications, the IMF Plug-ins, etc) and it does not enforce compliance. For example, it does not check that the input essence and metadata will result in a compliant Track File.
The IMF flavour is enabled using the -t imf clip type option in bmxtranswrap and raw2bmx. This results in the following settings for OP1a,
- fill after the header metadata is at least 8192 bytes (
--head-fill 8192) - index table follows the essence, even for clip-wrapped audio (
--index-follows) - creates partitions every 60 seconds for frame-wrapped essence (
--part 60) - audio clip-wrapping (
--clip-wrap) - combines audio into a single track by default (
--track-map singlemca) - adds a Primary Package property (
--primary-package) - disables creation of timecode tracks (
--no-tc-track) - adds the audio Channel Assignment label descriptor property and sets it to the IMF label by default (
--audio-layout imf). Use the--audio-layoutoption to override this default value. - add the Display F2 Offset and sets it to 0 for progressive JPEG 2000 and RDD 36 video (
--display-f2-offset 0)
The settings can be found in the code by searching for the OP1a define OP1A_IMF_FLAVOUR and the descriptor define MXFDESC_IMF_FLAVOUR. E.g. see if ((flavour & OP1A_IMF_FLAVOUR)) in src/mxf_op1a/OP1AFile.cpp for the bulk of the settings.
IMF Track Files contain only a single essence component. bmx provides support for creating such files. If the input MXF files contain multiple essence tracks then use options such as --disable-video, --disable-audio, --disable-data and --track-map to disable tracks.
A number of topics related to creating complete IMF Track Files can be found in the docs/ directory, including Multi-channel Audio Labels, Timed Text, JPEG 2000 and ProRes.
The bmxtranswrap and raw2bmx tools allow setting metadata defined in SMPTE ST 2067-2,
- Reference Image Edit Rate (
--ref-image-edit-rate) - Reference Audio Alignment Level (
--ref-audio-align-level) - Active Height (
--active-height) - Active Width (
--active-width) - Active X Offset (
--active-x-offset) - Active Y Offset (
--active-y-offset) - Alternative Center Cuts (
--center-cut-4-3and--center-cut-14-9)
and SMPTE ST 2067-21 - Application #2E,
- Mastering Display Primaries (
--display-primaries) - Mastering Display White Point Chromaticity (
--display-white-point) - Mastering Display Maximum Luminance (
--display-max-luma) - Mastering Display Minimum Luminance (
--display-min-luma)
IMF Track File names conventionally include the UUID material number of the top-level file source package UMID. This can be accomplished automatically by supplying an output filename argument as a pattern, such as -o {Type}_{fp_uuid}.mxf. This example pattern results in a filename beginning with VIDEO, AUDIO or DATA, such as VIDEO_a145db5d-4623-4233-913f-15e16980b840.mxf, but can be tuned with the --ess-type-names parameter.