[FFmpeg-user] How can I set in a D10 MXF (IMX50) file the flags for output color_range, -space, -transfer and primaries?

tim nicholson nichot20 at yahoo.com
Tue May 5 09:06:59 CEST 2015

On 02/05/15 14:38, Christoph Gerstbauer wrote:
> Am 01.05.15 um 11:21 schrieb tim nicholson:
>> [..]
>> Christoph do you actually require the mxf metadata setting (as it really
>> ought to be, and what I thought you were after) or are you content with
>> it in the essence, in which case, in the absence of a target preset, you
>> will have to set the flags yourself.
> As Marton Balint showed me the syntax, the setting of these 4 values
> worked, but they dont affect the metadata in the MXF container.
> The metadata flags:
> Color Siting and Signal Standard werent changed by using the syntax.
> Before this test I though I could change these 2 params with the syntax
> descriped above.
> But now I know that this is not working.
> Furthermore I looked for a way to PASS the test with the IRT Analyzer.
> Regarding to the ticket: "How to set 3 specific metadata flags
> (ITU601/displayoffset) in FFmpegs IMX50 MXF-OP1a encoding"
> Yes I am still looking for a encoding option fot the mxf encoding of
> ffmpeg to set MANUALLY (of course) the flags for Signal Standard and
> Color Siting.
> FFmpeg should never set it autmatically to any values, if the source
> would have empty flags.
> So if I know from which source the content is comming, I want to be able
> to set the 2 mxf metadata flags, and also the 4 addional falg for the
> essence (color_range, color_space, color_transfer and color_primaries).

Setting the values to a specified values seems straightforward enough,
now I have found the relevant UL's.

The tricky bit is to decide what to do if the values aren't manually
specified. According to the specs there is no "default" value, so we
would have to "invent" one. This could be by inspecting the codec
metadata to see if the corresponding stream flags are set. This looks
like it would be tricksy, or using some predetermined value based upon
some other parameters such as frame size, which could lead to
disagreement as to what was appropriate.

Making the writing of the metadata optional also adds complication in
the muxer, so it needs some careful thought.

As an interim solution for pristine mxf files, have you tired remuxing
with bmxlib?

> My motivation to this whole issue is:
> I want to generate a IMX50 file from an ffv or ffvhuff file were the
> IMX50 target file has less transcoding loss as possible.
> Most transcoders I use make an internal convertion from YUV422 to YUV422
> formats (e.g uncompress 4:2:2 to uncompressed 4:2:2) with an ADDIONAL
> loss. I guess it is an internal RGB convertion: YUV422 source to RGB
> (internal) to YUV422 target format. (anyway, these transcoders are black
> boxes and I cannot know if this is the cause)
> So when I transcode with these transcoders I have 2 LOSSY steps:
> 1.) Avoidable LOSS of source is YUV422: addional chroma subsampling
> (RGB->YUV422)
> 2.) MPEG2 encoding loss
> FFmpeg does not do that: It keeps the yuv422 native format and just
> encode it to mpeg2. -> And that would lead to better quality IMX files.
> Therefore I want to switch from "professional" transcoders to ffmpeg for
> generation IMX50. But I will still ned this metadata flag to do it
> perfectly.
> Best Regards
> Christoph Gerstbauer
>>> Regards,
>>> Marton
>>> [..]
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Key Fingerprint 38CF DB09 3ED0 F607 8B67 6CED 0C0B FC44 8B0B FC83

More information about the ffmpeg-user mailing list