- Test mpv without configuration to isolate profiles, scripts, shaders, and bindings.
- Match video range, GPU output, ICC profiles, and display HDR settings.
- Compare decoding paths, metadata, streams, logs, and screenshots before changing permanent options.
- Confirm the Symptom With a Minimal Clean mpv Command
- Check mpv Options, Profiles, Scripts, and Media Sources
- Check Range, Color Profiles, HDR, and the Graphics Stack
- Use mpv Diagnostics Instead of Guessing
- Run a Clean Temporary Test Before Making Permanent Changes
- Avoid Screenshot Comparison Pitfalls
- Quick Fix Checklist
- Frequently Asked Questions
When mpv colors look washed out, the picture may appear gray, desaturated, low-contrast, or shifted toward an unexpected tint. The cause is usually not a missing codec. More often, mpv or the graphics stack is interpreting video range, color metadata, HDR, display profiles, or GPU output differently than expected. Custom configuration files, profiles, shaders, scripts, hardware decoding, and source-specific metadata can also change the result. The safest approach is to reproduce the symptom with a clean command, identify which layer introduces it, and stop as soon as normal color returns.

Start with free Canva bundles
Browse the freebies page to claim ready-to-use Canva bundles, then get 25% off your first premium bundle after you sign up.
Free to claim. Canva-ready. Instant access.
1. Confirm the Symptom With a Minimal Clean mpv Command
Begin with a local video that you know should look normal. A familiar SDR file is preferable because it removes HDR tone mapping, network delivery, and yt-dlp format selection from the first test. Open a terminal or command prompt and run:
mpv --no-config "path/to/video.mp4"
On Windows, use a quoted Windows path such as:
mpv --no-config "C:\Videos\test.mp4"
The --no-config option tells mpv not to load the normal user configuration. This temporarily excludes settings in mpv.conf, input bindings, automatically loaded profiles, and most configuration-driven customizations. It does not delete or modify your files.
Success means the clean test has normal saturation, black levels, highlights, and skin tones. If it does, stop changing GPU drivers or operating system display settings. The problem is probably in your mpv configuration, a profile, a script, or an option used by your normal launcher.
If the clean test remains washed out, compare it on the same monitor with another color-managed player. Do not treat a browser thumbnail, phone display, or social-media preview as a definitive reference. Different applications can use different rendering paths, tone mapping, and color management.
1.1 Separate file-specific and system-wide problems
Test at least two local files:
- A normal SDR video with familiar colors
- The file that originally showed the problem
If only one file is affected, its color metadata, encoded range, mastering, or damaged headers may be responsible. If every file is affected, focus on mpv options, the output driver, GPU driver, operating system color management, and display output range.
1.2 Check whether the image is truly desaturated
Washed-out color can describe several different failures. Gray blacks and weak whites often indicate a limited-versus-full range mismatch. Normal contrast with weak color may indicate saturation, ICC, shader, or source issues. Extremely dim HDR footage on an SDR screen usually points to incorrect HDR handling or tone mapping. A colored cast can indicate a display profile, shader, or incorrect color-space metadata.
2. Check mpv Options, Profiles, Scripts, and Media Sources
If --no-config fixes the picture, reintroduce customizations carefully. Do not delete the entire configuration folder. Rename or comment out individual settings, then test after each change.
2.1 Inspect picture controls and input bindings
Look in mpv.conf, command-line aliases, desktop shortcuts, and launcher scripts for options affecting brightness, contrast, saturation, gamma, hue, video equalization, target color space, tone mapping, or shaders. Also inspect input.conf for keys that change these properties while mpv is running.
Press 2 in default mpv bindings to decrease contrast or 3 to increase it, while other default keys may affect brightness, gamma, and saturation depending on the active bindings and build. Because customized bindings can differ, inspect input.conf rather than assuming a key still has its default action.
You can reset common image controls for a temporary test:
mpv --no-config --brightness=0 --contrast=0 --saturation=0 --gamma=0 --hue=0 "video.mp4"
Success means neutral settings restore expected color. Stop there and remove or correct the specific persistent option or binding instead of compensating with another adjustment.
2.2 Identify profiles that change video output
Profiles can activate conditionally for protocols, file types, resolutions, or other properties. A profile might enable a shader, select a different video output, or alter color conversion without being obvious in the launch command.
Use the following command to display the contents of a named profile:
mpv --show-profile=PROFILE_NAME
Replace PROFILE_NAME with the profile defined in your configuration. Review auto profiles and any profile selected by a launcher. Disable one suspect profile for a test rather than rewriting several settings simultaneously.
2.3 Disable shaders and scripts temporarily
Custom GLSL shaders can intentionally alter gamut, contrast, transfer functions, or tone mapping. Scripts can set mpv properties at startup or when a new file loads. Move only the suspected script or shader reference out of the active path, or comment out its configuration line, and rerun the same file.
Check script options as well as the script itself. A script may be working correctly but receiving an inappropriate target display or HDR setting. Success means color returns when one shader or script is disabled. At that point, update its configuration or use it only in a suitable profile.
2.4 Rule out subtitle and track confusion
Subtitles do not normally desaturate the underlying video. However, a full-screen styled subtitle overlay, ASS effect, or unusual subtitle rendering can make parts of the image appear faded. Test with subtitles disabled:
mpv --no-sub "video.mkv"
Also inspect the track list in mpv. Some files contain multiple video tracks, such as a main feature, cover image, alternate encode, or attached visual stream. Select the intended video track rather than assuming the default is correct.
Audio-track selection and audio backends do not change video color. If changing audio options appears to fix the picture, the likely cause is a profile, script, or command line that modifies both audio and video settings. Compare the complete commands rather than attributing color to the audio backend.
2.5 Compare local files, URLs, playlists, and yt-dlp inputs
For an online URL, mpv may rely on yt-dlp to resolve available streams. Different formats can have different codecs, resolutions, dynamic ranges, or metadata. First test a known local SDR file. Then inspect the URL result and available tracks.
If only online video is affected, update yt-dlp through its trusted installation channel and confirm mpv is finding the intended executable. Avoid random replacement binaries. Test the direct media URL, when legitimately available, to distinguish mpv rendering from format selection or server metadata.
A playlist can mix SDR and HDR items, while a network stream may omit or mislabel color information. Success means one selected stream or format displays correctly while another does not. Stop changing global mpv color settings and address the source or choose the correctly tagged format.

3. Check Range, Color Profiles, HDR, and the Graphics Stack
3.1 Understand limited versus full range
Most conventional video is encoded using limited-range levels, while computer desktop output is often full range. Washed-out blacks commonly occur when limited data is treated as full-range data, or when full-range output is interpreted as limited by the display. Double conversion can cause the opposite problem, with crushed blacks and clipped whites.
Do not force a range merely because one value sounds better. First inspect the file metadata and compare the clean mpv result. mpv normally uses signaled metadata and performs the appropriate conversion. Manual overrides are most useful for incorrectly tagged files or a confirmed driver-display mismatch.
Check the GPU control panel and monitor or television settings for output dynamic range, black level, HDMI range, or RGB range. The source and display must agree. If the GPU outputs full RGB, the display should expect full range. If the GPU outputs limited range, the display should expect limited range.
Success means blacks are dark without losing shadow detail, whites are bright without clipping, and colors no longer look veiled. Once the output and display agree, stop adjusting mpv contrast to hide the mismatch.
3.2 Review ICC and operating system color management
An incorrect ICC profile can shift color or reduce apparent saturation. A valid profile describes a particular display in a particular state. It should not be copied from an unrelated monitor merely because the model name is similar.
Temporarily compare mpv with its ICC-related customization disabled, especially if your configuration explicitly supplies an ICC profile or enables automatic profile handling. Also inspect the operating system display profile assigned to the active monitor. Multi-monitor systems can apply the wrong profile after displays are rearranged or reconnected.
If disabling a manually configured profile restores normal color, verify the profile path, monitor assignment, and calibration state. Shell quoting matters when the path contains spaces. Success means mpv and other color-managed applications agree reasonably on the same display.
3.3 Handle HDR flags on an SDR display
HDR video can look dim, gray, or oddly colored on an SDR display when the HDR transfer function and wide color gamut are not mapped correctly. Conversely, an SDR file incorrectly tagged as HDR may trigger unnecessary tone mapping.
Use mpv's statistics overlay and terminal output to inspect the reported transfer function, primaries, and pixel format. If the source reports PQ or HLG characteristics but the display path is SDR, tone mapping is expected. If an ordinary SDR source unexpectedly reports HDR metadata, the file or stream may be mislabeled.
Test the same file with --no-config before adding tone-mapping overrides. Modern mpv configurations may already perform appropriate conversion through the selected GPU output path. Success means highlights remain visible, midtones are not excessively dark, and colors look plausible rather than neon or gray. Once that happens, avoid stacking extra HDR shaders or conflicting target settings.
3.4 Compare hardware decoding and video output
Hardware decoding can expose driver-specific behavior, particularly with high-bit-depth, HDR, or unusual formats. Compare normal playback with hardware decoding disabled:
mpv --no-config --hwdec=no "video.mkv"
Then compare it with a clean hardware-decoded test:
mpv --no-config --hwdec=auto "video.mkv"
If only hardware decoding produces washed-out color, update the GPU driver from the operating system or hardware vendor's official channel. You can use software decoding as a temporary workaround if performance remains adequate.
Also test the default video output rather than forcing an old or platform-specific output driver. A forced output can bypass capabilities needed for proper color conversion. On Linux, compare behavior under the available Wayland or X11 session only if the clean result differs between them. On macOS, verify that display HDR and reference modes are appropriate for the actual monitor. On Windows, check system HDR and the GPU output-range setting.
4. Use mpv Diagnostics Instead of Guessing
4.1 Create a focused log
Run mpv from a terminal and preserve a log:
mpv --no-config --log-file=mpv-color-test.log --msg-level=all=v "video.mkv"
The verbose log can reveal the selected video output, decoder, hardware-decoding path, pixel format, color primaries, transfer characteristics, matrix, and range. Search for terms such as range, primaries, transfer, hdr, vo, and hwdec.
Do not publish a log without reviewing it. URLs, file paths, usernames, query tokens, and IPC details may be sensitive. A useful comparison is one clean log and one normal-config log from the same file.
4.2 Use the statistics overlay and track list
Press i for playback information or use the extended statistics overlay available through mpv's default bindings. The exact pages and displayed fields can depend on the build and configuration. Confirm the active decoder, video output, hardware-decoding state, frame rate, pixel format, and color metadata.
Inspect the track list for the selected video stream. For online media, confirm that the selected stream is the one expected. If the clean and customized runs select the same track but show different output paths, focus on configuration. If they select different streams, focus on format selection or the playlist source.
4.3 Interpret the result narrowly
- If
--no-configfixes it, inspect configuration, profiles, scripts, shaders, and launch options. - If
--hwdec=nofixes it, investigate the hardware decoder and GPU driver. - If only one display is affected, check its ICC profile and output-range agreement.
- If only HDR files are affected, inspect HDR metadata, tone mapping, and display HDR state.
- If only one file or stream is affected, suspect incorrect or missing media metadata.
- If screenshots differ from the visible window, investigate screenshot color management before changing playback.
5. Run a Clean Temporary Test Before Making Permanent Changes
Use a controlled sequence so each result answers one question. Keep the file, monitor, window size, and viewing conditions constant.
- Play a known SDR local file with
--no-config. - Repeat with
--hwdec=no. - Repeat with
--hwdec=auto. - Run the normal configuration and note when the color changes.
- Disable one profile, shader, script, or color-related option at a time.
- Check GPU output range and the display's matching range setting.
- Test the original HDR file, URL, playlist, or network stream only after SDR works.
Do not change mpv range overrides, operating system HDR, monitor black level, ICC profiles, and GPU settings all at once. Multiple compensating errors can make one test look acceptable while leaving the system technically wrong.
A successful result is repeatable after restarting mpv and reopening the same source. It should also preserve shadow detail, highlight detail, and natural saturation. Once the smallest responsible setting is identified, restore unrelated options and stop troubleshooting.
6. Avoid Screenshot Comparison Pitfalls
A screenshot is not always a faithful representation of what appeared on the display. HDR screenshots may be stored, tone-mapped, tagged, or viewed differently by another application. GPU overlays and some presentation paths may also be captured differently from the visible output.
Compare screenshots in the same image viewer on the same monitor, and check whether that viewer honors embedded profiles. If the mpv window looks correct but the screenshot looks washed out, the playback pipeline may be fine. Test mpv's screenshot output against an operating system screenshot, then inspect both in a color-managed viewer.
Do not alter playback saturation merely to make a screenshot match an unmanaged viewer. Success means the visible video is correct and captured images are interpreted consistently by the chosen workflow.
7. Quick Fix Checklist
- Run
mpv --no-config "video.mp4"with a known SDR local file. - Reset brightness, contrast, saturation, gamma, and hue to zero.
- Inspect
mpv.conf,input.conf, profiles, scripts, and shader options. - Test with subtitles disabled and verify the selected video track.
- Compare
--hwdec=nowith--hwdec=auto. - Make GPU output range match the monitor or television input range.
- Verify the ICC profile belongs to the active display.
- Check whether an SDR source is incorrectly flagged as HDR.
- For URLs, compare the chosen stream and yt-dlp-resolved format.
- Capture a clean log and compare it with the normal-config log.
- Change one setting at a time and stop when the fix is repeatable.
8. Frequently Asked Questions
8.1 Why are mpv colors washed out only on one monitor?
That usually points to the monitor's ICC assignment, HDR state, black-level setting, cable input mode, or GPU output range. Test the same clean mpv command on both displays. If only one differs, avoid changing global video controls and correct that display's configuration.
8.2 Should I force full range in mpv?
Not by default. Most video uses limited-range encoding, and mpv normally converts it appropriately for the output. Force a range only when reliable metadata inspection and visual tests confirm that the source is mislabeled. For system-wide gray blacks, first make the GPU output range agree with the display.
8.3 Why does HDR look gray on my SDR screen?
The HDR transfer function and wide-gamut colors must be mapped to the SDR display's capabilities. A forced shader, incorrect target setting, old output path, or bad metadata can disrupt that process. Start with --no-config, inspect the reported color metadata, and remove conflicting HDR overrides.
8.4 Why does disabling hardware decoding fix the color?
Software and hardware decoding may use different driver and pixel-transfer paths. If --hwdec=no fixes the image, keep it as a temporary workaround, update the official GPU driver, and retest. High-resolution media may require hardware decoding for smooth playback, so verify performance before adopting the workaround permanently.
8.5 Can subtitles or audio settings wash out video?
Audio settings cannot directly change video color. Subtitles normally cannot either, although complex full-screen subtitle styling can create a faded overlay. If an audio or subtitle profile appears responsible, inspect the entire profile because it may also contain video, shader, or output options.
8.6 Why does the screenshot look washed out when playback looks normal?
The screenshot and visible video may pass through different HDR or color-management stages. View captures in a color-managed application and compare mpv screenshots with operating system captures. If playback is correct, fix the capture or viewing workflow rather than distorting mpv's live output.