Product videos / PRACTICAL ANSWER
Why Do My Product Video's Blacks Become Gray After Transcoding?
Black levels can shift when a video encoded or interpreted as full range is decoded as limited range, or the reverse. This is a sample-range problem, not necessarily a gamma, HDR or creative-grade problem. Compare the source and transcode with a known grayscale fixture before adjusting the product's contrast.
Understand the two signal ranges
Digital video may use different numeric ranges to represent picture levels. In an 8-bit limited-range YCbCr signal, nominal luma black and white commonly correspond to code values 16 and 235. Full-range 8-bit luma uses 0 through 255.
FFmpeg's official filter documentation identifies these alternatives as limited or TV range and full or PC range. It exposes explicit input-range and output-range controls in its scaling and color-conversion filters.
The critical distinction is between interpreting an existing signal and converting it into another range. Merely changing a metadata label does not necessarily transform the encoded sample values. Applying a conversion to data that was already converted can create another mismatch.
Do not confuse luma code values with display RGB values. A correctly decoded limited-range black can display as black after the proper expansion. The problem occurs when the decoder and the actual encoded signal disagree.
Build a controlled source-to-output comparison
Preserve the original video and the first transcode. Inspect the pixel format, color-range metadata and relevant encoding settings using a tool that exposes them. Missing or contradictory metadata is a reason to investigate, not permission to guess.
Use a known grayscale test pattern or a verified neutral region alongside the product. Compare the same frame in the source and transcode after a documented decode, keeping the viewer and color-management settings constant.
If the source and transcode differ, identify whether the output was explicitly range-converted, merely tagged differently or decoded under a different assumption. Inspect both the actual sample values and the declared range where the tool permits it.
Do not conclude that every lifted black is a range problem. Gamma interpretation, color transforms, unintended creative contrast changes and platform processing can also affect the appearance. A controlled grayscale fixture helps isolate the range branch.
Correct the range once, at the right stage
FFmpeg documents explicit in_range and out_range options for relevant filters. These are technical controls for a known input and intended output, not universal settings to apply to every file.
Once the actual source range is established, configure the conversion route so the encoded values and output interpretation agree. Make a short named test and compare the grayscale reference and product shadows with the untouched source.
If the source metadata is unreliable, consult the camera or upstream encoder's recording specification. Do not set the range according to which version makes the advertisement look richer. Such a choice could crush legitimate shadow detail or wash out a dark product finish.
Check the final exported file and the intended player. A correct local conversion does not establish that every publishing platform will preserve the same signal representation.
Hypothetical case: a black cosmetics carton
Hypothetical signal-level exercise; no file was transcoded or measured. A fictional cosmetics advertisement contains a black carton beside a grayscale reference. Its source is stipulated to contain correctly identified limited-range YCbCr data.
Candidate A interprets the limited-range samples as full-range values without the appropriate expansion. The nominal black code can then appear lifted. Candidate B decodes the limited-range source correctly and produces an output whose values and range declaration agree.
B is the appropriate technical route, subject to inspecting the actual decoded output. A third branch with unknown source range remains on hold until the recording specification or trustworthy signal evidence is available. The exercise does not establish the cause of a real merchant's gray blacks.
Record your own observations
The filled rows are illustrative examples. Use the blank row for your own files and observations.
| Hypothetical case | Actual source range | Interpretation | Expected black behavior | Decision | Required evidence |
|---|---|---|---|---|---|
| Black carton A | Limited | Incorrectly treated as full | Potentially lifted black | Reject | Inspect decoded levels |
| Black carton B | Limited | Correctly decoded and converted | Intended black preserved | Conditional candidate | Check output values and metadata |
| Unknown source | Unestablished | Assumed from appearance | Indeterminate | Hold | Obtain source specification |
What the references establish
- FFmpeg — Filters Documentation: Primary documentation for input and output YCbCr range controls, including full and limited 8-bit luma ranges. Supports the central signal-range mechanism.
- FFmpeg — Command-Line Tool Documentation: Primary documentation for transcoding and stream processing. The grayscale fixture and approval sequence are original editorial guidance.
Sources and further reading
Recorded source-review dates are listed individually below. An undated source does not inherit the article’s publication date. Software and platform rules can change; check the current original before acting.
- FFmpeg — Filters Documentation · Review date not separately recorded
- FFmpeg — Command-Line Tool Documentation · Review date not separately recorded
Frequently asked questions
Are limited-range blacks supposed to look gray?
No. Properly interpreted limited-range video can display black correctly. Gray-looking blacks can arise when the numeric values and decoding assumptions disagree.
Should I fix the issue by lowering the black point?
Not before checking the signal range. A creative contrast adjustment can conceal an interpretation error and remove legitimate shadow detail.
PREPARE ASSETS FOR YOUR NEXT STEP
Create supporting product assets in CartVisual.
Create new product creative assets in the workspace, then continue in your chosen tools. Third-party software procedures described in this guide take place in those applications; this workspace link does not imply an integration. Check current capabilities, account access and credit quotes.
Create account and open this workspace Check pricing and creditsStart with free concept and copy planning after sign-in. Image and video generation require available credits; review the quote before starting.
Already have an account? Open the workspace.