[FFmpeg-user] Colorspace, clarifications; was: [Cin] FranceBB's LUT collection
Mark Filipak
markfilipak.imdb at gmail.com
Mon May 19 22:09:54 EEST 2025
On 19/05/2025 10.34, Erik Dobberkau wrote:
> I had written:
>> I have a UHD m2ts that FFmpeg identifies "yuv420p10le(tv,
>> bt2020nc/bt2020/smpte2084)". To the best
>> of my knowledge that means so-called "yuv420" format, planar pixel
>> matrices, 10 bits-per-primary,
>> little-endian bytes, with limited black..white range and -- now I have to
>> guess --
>> colorspace=bt2020nc, primaries=bt2020 (i.e. RGB to YUV formula),
>> transfer=smpte2084 (i.e. HDR using
>> PQ transfer function). Is all that correct?
>
> Almost. "colorspace" ("bt2020nc") is the YUV matrix. The primaries are
> BT.2020 ("bt2020"). 10bpc planar LE, signal range and transfer function
> were assumed correctly. ;-)
> Derived from [1], where the mappings from ffmpeg/libav internal enums to
> user-facing strings are documented.
>
>> In "bt2020nc", what does "nc" signify?
>
> Non-constant luminance as per BT Rec.2020 Table 4. See [2].
>
>> Why is 'colorspace' there at all? Doesn't 'primaries' together with
>> 'transfer' tell the whole story?
>
> See above, without a YUV matrix you won't get far...
Thanks again, Erik.
yuv420p10le(tv,bt2020nc/bt2020/smpte2084)
\ \ \ \
\ matrix \ transfer
range primaries
Is the above _always_ the correct interpretation of the order?
Here: https://ffmpeg.org/ffmpeg-filters.html#colorspace,
1) Does "Input video needs to have an even size" really mean an even number of rows?
2) Is 'colorspace=space=<string>' really 'matrix'?
3) What is 'colorspace=format=<string>'?
4) The formats, whatever they are, are all yuv, so 'colorspace=format=<string>' outputs yuv?
5) Are all 'colorspace' outputs always yuv?
...almost done.
More information about the ffmpeg-user
mailing list