[FFmpeg-user] How can I set in a D10 MXF (IMX50) file the flags for output color_range, -space, -transfer and primaries?
christophgerstbauer at gmail.com
Tue May 5 16:52:09 CEST 2015
Am 05.05.2015 um 09:06 schrieb tim nicholson:
> 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.
Hm, so what is happening at the current ffmpeg encoding? If nothing is
defined what is going into the 2 mxf metadata flags?
At this time the following is readed out from mxf2raw:
Signal Standard = 0 (NONE)
Color Sitting = 255 (UNKNOWN)
So is ffmpeg writing this "0" into the mxf or is MXF2RAW showing me the
some standard value when it cannot regognize any value in this flags?
> 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?
Never tried this way :) I just used mxf2raw to check the files.
But I will try this way too. Thank you for the hint.
>> 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
>> 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
>> Best Regards
>> Christoph Gerstbauer
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
More information about the ffmpeg-user