Hero Image
- Antonio Marogna

Why does the brightness sometimes change after transcoding?

The brightness of a video can change after transcoding due to several reasons, including:
  1. Video levels interpretation: During the transcoding process, different software tools and video codecs may have different ways of handling the video levels, and if not handled correctly, this can lead to changes in brightness.
  2. Color space conversion: The transcoding process may involve conversion from one color space to another, which can cause changes in the brightness levels.
  3. Bit depth conversion: Transcoding may also involve reducing the bit depth of the video, which can cause loss of color information and lead to changes in brightness.
  4. Compression artifacts: Compression can cause loss of information and changes in brightness levels, especially if the video is compressed excessively.
  5. Incorrect settings: If the settings used during transcoding are incorrect, such as incorrect gamma levels, the resulting video may have different brightness levels.
  6. Different display devices: Differences in the way that different display devices interpret the video data can cause variations in the perceived brightness levels.

The use of proper metadata management during transcoding can help ensure that video levels and color information are accurately preserved, preventing changes in brightness and color.

Let's consider the first reason: video levels interpretation.

Video level refers to the range of brightness values that are used in a video, and it is typically expressed as a range of luminance levels, such as 0-255 or 16-235 for 8-bit and 0-1023 or 64-940 for 10-bit. The first range is generally called Full or Data and the second range Limited or Video.

This is a frame from a Panasonic GH5 Mark II recorded in AVC High 4:2:2 with video levels set to 0-1023.

Picture 1 - GH5 MKII master file (Image Courtesy of PACStudio)

In the Final Cut Pro Video Scopes window, the original master file looks like this:

Picture 2 - GH5 MKII master file

During the transcoding process, different software tools and video codecs may have different ways of handling the video levels, and if not handled correctly, this can lead to changes in brightness. When video levels are interpreted as limited instead of full during transcoding, this can result in changes in brightness and color values.

For example, this is a transcode version using a tool that doesn't interpret the video levels correctly

Picture 3 - Transcoded file with a tool that does not interprets video levels correctly

If video levels are not interpreted correctly during transcoding, it can result in an incorrect brightness or contrast of the video and in a loss of dynamic range and detail. This can result in loss of detail in bright or dark areas (see the zebra of the Luma Range Check activated, the IRE is above the value of 100 and below the value of 0 ), washed-out colors, or an overall poor quality image. Additionally, incorrect video level interpretation may result in compatibility issues with different display devices and playback systems, further compromising the quality of the video.

When video levels are correctly interpreted during transcoding, the resulting output video will have accurate and consistent brightness, contrast, and color representation. This helps maintain the visual quality and intent of the original footage, and ensures that the output video matches the original as closely as possible.

Picture 4 - Transcoded file with a tool that interprets video levels correctly (e.g. evrExpanse)

Accuracy of video levels and other variables during the transcoding process is crucial for professional level video work, as opposed to just fast transcoding. Ensuring that video levels are interpreted correctly can help to maintain the integrity and quality of the original video, making the final output more accurate and professional looking, helping to avoid additional time and resources spent in color correction and post-production.

evrApp's evrExpanse is a metadata export and transcoding tool that aims to provide accurate metadata interpretation during the transcoding process, helping to prevent these issues.