ffmpeg Format settings, Matrix bt709

后端 未结 2 1372
情深已故
情深已故 2021-01-05 19:24

Does anyone know how I can achieve the following color space (bt.709) via FFmpeg?
Here is what I have now in my files...

As you can se

相关标签:
2条回答
  • 2021-01-05 20:22

    After much searching, the secret option that has to be passed to ffmpeg for proper BT.709 encoding is found to be inside the video filter feature. Note that the -vf video filter option actually transforms while the other 709 flags just indicate what flags will be included in the container.

    This example starts with a 32x32 png that is set to (0, 0, 255) or max blue.

    ffmpeg -y -i Blue32x32.png -c:v libx264 -pix_fmt yuv420p -preset:v slow -profile:v baseline -crf 20 -vf scale=out_color_matrix=bt709 -color_primaries bt709 -color_trc bt709 -colorspace bt709 Blue32x32_709.m4v
    ffmpeg -y -i Blue32x32_709.m4v Blue32x32_709.y4m
    od -v -t u1 Blue32x32_709.y4m
    

    The output of the last command dumps byte values as ints, you should see (Y Cb Cr) values as Y = 32, Cb = 240, Cr = 118 which means the BT.709 conversion matrix is being used in the .m4v file. When decoded back to RGB the transformed color is (2 0 255).

    0 讨论(0)
  • 2021-01-05 20:26

    With re-encoding, use

    ffmpeg -i test.mxf -c copy -c:v mpeg2video -b:v 5000k \
           -color_primaries 1 -color_trc 1 -colorspace 1 out.mxf
    

    In Mediainfo, at the end of the video stream attributes, you should see the three color-related entries. Note that Format settings (Matrix) is related to MPEG quantization and not color.

    0 讨论(0)
提交回复
热议问题