Problem
Noticed that our lowest transcoded video streams had a different colors to the rest of the streams. We do multiple transcoding’s, both 720p, 480p, 360p, 270p and it was only 360p and 270p that had this disparity from the original. The difference is slight but annoying enough that you notice it if you are constantly switching between qualities.
Solution
Setting the three values colour_primaries, transfer_characteristics, matrix_coefficients to be BT.709 for 360p and 270p.
You do this by setting the following encoder properties
Name | Value |
mainconcept.colour_primaries | 1 |
mainconcept.transfer_characteristics | 1 |
mainconcept.matrix_coefficients | 1 |
Background
There is multiple values that says what color space that is being used. using MPC-HC we can se that the color space we are using for most of the files is BT.709, as it should be for HD broadcasts.
Color primaries | BT.709 |
Transfer characteristics | BT.709 |
Matrix coefficients | BT.709 |
however then dropping the resolution to below 360p Wowza and Mainconcept switches the color space.
Color primaries | BT.601 PAL |
Transfer characteristics | BT.470 System B, BT.470 System G |
Matrix coefficients | BT.601 |
Tests
Wowza allows you to set advanced settings for the Mainconcept encoder, however you must configure Wowza to output what those settings are. you can look at the post Wowza Transcoder options to se which settings that exists.
Parameter | Possible Values |
mainconcept.colour_primaries | 1: ITU-R Rec. BT.709-5, 4: ITU-R Rec. BT.470-6 System M, 5: ITU-R Rec. BT.601-6 625, 6: ITU-R Rec. BT.601-6 525, 7: SMPTE 240M, 8: Generic film (colour filters using Illuminant C), 9: Rec. ITU-R BT.2020 |
mainconcept.transfer_characteristics | 0:auto (default), 1: BT.709-5, 4: BT.470-6 System M, 5: BT.470-6 System B G, 6: BT.709-5, 7: SMPTE 240M, 8: Linear, 14: Rec. ITU-R BT.2020 |
mainconcept.matrix_coefficients | 0:auto (default), 1: BT.709-5 System 1125, 4..6: BT.709-5 System 1250, 7: SMPTE 240M, 9: Rec. ITU-R BT.2020 non-constant luminance system |
My educated guess would be that I should set the values for BT.709-5 System 1250 since I am in a pal country running 50fps. But doing so resultat in an outputted file that had Matrix Coeffcient as BT.601
The only combination of the above settings that resultat in BT.709 for all settings was the value 1 for all three properties.