-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Movie Writer Colors differ significantly from Rendered Output #96568
Comments
Running in Desktop Colour Accuracy Mode "Accurate" or "Override to Reference Mode" results in the same results. (I usually run in Accurate) I do have Monitor color profiles installed: The bug occurs on all screens and appears unrelated to color correction in hardware / driver level. |
Re-Encoding the movie with HandBrake to something "default", like H.264 as written by the preset "Fast 1080p30", will result in a stream that's much closer to the original colors. (comparing numerically is somewhat moot due to the complete re-encoding and default noisy quality of 22, but it's overall much closer) |
It could be that the file needs to be tagged as sRGB or something. Well these are certainly linked |
I don't think these are directly related, especially not after 4 years. I think that proposal is, at best, valid for Godot 3. With no color grading enabled (i.e. Linear), a unshaded cube of color #808000FF reproduces exactly as color #808000FF on my display and screen capture. Also side-by-side. Yet the same captured as video is much darker: I think this may be a Color Gamut / Full vs. Limited Range scaling issue (due to how the colors actually scale up in bright regions and down in dark regions) in the written video file. Also noteworthy: The video color of the cube is only very subtly different. #808100FF |
From a quick glance at your original issue description, my first guess would be that VLC is misinterpreting the video to be limited range, when it’s actually encoded as full range. This is honestly an annoying problem that spans all sorts of video encoding/decoding, transport (HDMI, etc), and displays. It sounds like you have determined what the issue is. Maybe try recording some AVI files with different settings using OBS Studio to see if you can reproduce the same problem. If it’s easy to reproduce the same issue with OBS Studio saving an AVI file, this will be good information in determining if this is really an issue with Godot’s approach or if it’s a widespread issue. (Personally, I remember having issues with how VLC was treating everything as limited range and stopped using it as my media player many years ago 😅) |
I guess this is one more reason to switch to mpv. 🙂
This was done to avoid linking against FFmpeg, which has licensing quirks (LGPL) and is a huge library compared to a self-made MJPEG implementation. MovieWriter is also compiled in export templates, not just in the editor. Uncompressed AVI output could be supported, but file sizes are prohibitive when targeting modern resolutions/framerates and QOI makes it less relevant. |
Tested versions
Reproducible in 4.3 stable on Windows 11 Pro, with a reasonably recent version of VLC
The color discrepancy exists in VLC Media Player even if all preferences are reset to default.
The color discrepancy is visible in HandBrake preview, but is goine in H.264 output.
System information
Windows 11 - Godot v4.3.stable.mono.official [77dcf97]
Issue description
Recording a movie results in a movie file whose color grading is quite different from the output shown, both while recording or while playing the scene normally.
Steps to reproduce
Screenshot with locally sampled color values in image editor and annotated)
Minimal reproduction project (MRP)
Reference Project
movie-color-grading-bug-repro.zip
Reference Project Movie File:
movie.avi.zip
"Repaired" Movie after Re-Encoding to H.264 with HandBrake 1.8.1
Movie-22-repaired.mp4
The text was updated successfully, but these errors were encountered: