Ok I think I am posting this in the correct section of the forum since I believe it would fall under editing. Here's the lowdown, when the Superman movies were released on Blu ray, the *beeps* changed the colour of the entire colour palette as they have done with a lot of Blu rays, and purists like myself are not happy and want to enjoy these movies in their original colour scheme.
I have attached two sets of files, one from the dvd and one from the blu ray, each being the same scene, as you will notice, Superman's costume is turquoise, and his red and yellow's have also been changed on the blu ray version. My aim is to somehow change the colours on the HD version so they match that of the DVD version. Now I have tried this myself using the HUE/SATURATION filter on virtualdub using avisynth, but it's no good, it leaves a faint yellow hue around the S symbol.
Can anyone help me here?
Thanks in advance.
+ Reply to Thread
Results 1 to 24 of 24
You can try to use Avisynth and compare statistic from both files - i made very brief comparison in ffmpeg and it looks like BD version is way different than DVD - Cr part is significantly shifted down (bellow 128), also it looks like levels are highly clipped (DVD has higher dynamics - whites rarely peak 235, similar for chroma which is even more clipped than luminance).
@setlocal @set /a cput=(%NUMBER_OF_PROCESSORS%*3)/2 @echo CPU's=%cput% @REM Where to Find ffmpeg @set FFMPG=D:\FF @set PTH=%PATH% @set PATH=%FFMPG%;%PTH% @set FC_CONFIG_DIR=%FFMPG%\conf @set FONTCONFIG_FILE=%FFMPG%\conf\fonts.conf @set FONTCONFIG_PATH=%FFMPG%\conf @ffmpeg -hide_banner -loglevel 24 -stats -an -sn -color_range 2 -stream_loop -1 -i "%1" -color_range 2 -i "%2" -filter_complex "[0:v]crop=656:416:32:82,scale=-2:256:eval=0:sws_flags=bilinear:sws_dither=0:in_range=1:out_range=1,split=2[v0a][v0b];[v0a]waveform=filter=lowpass:scale=digital:graticule=green:flags=numbers+dots:components=7:display=stack:envelope=peak+instant[v0o];[v0o][v0b]vstack[out0];[1:v]scale=-2:256:eval=0:sws_flags=bilinear:sws_dither=0:in_range=1:out_range=1,split=2[v1a][v1b];[v1a]waveform=filter=lowpass:scale=digital:graticule=green:flags=numbers+dots:components=7:display=stack:envelope=peak+instant[v1o];[v1o][v1b]vstack[out1];[out0][out1]hstack[out]" -map "[out]" -pix_fmt yuv420p -f yuv4mpegpipe - | ffplay -hide_banner -loglevel 24 -stats -i @endlocal @pause
Last edited by pandy; 3rd Oct 2016 at 17:32.
I'm sorry but this all double-dutch to me. Thank you for the detailed response, but all I want to know is a basic step by step guide showing me how I can fix this, what do you suggest?
Jagabo, i understand you are telling me to do this via avisynth script, but can you please guide me step by step and just pretend im a complete beginner? Or even if you can download my files and execute it to yourself and then show me how you did it? Im not as advanced as you guys.
I would appreciate it from my heart!
MergeChroma filter, which might be easier than using Colorlike, not that using Colorlike is all that difficult with some basic knowledge of AviSynth. Here are a couple of links:
Ok listen all I am asking for is a little bit of support that is all, I will do this myself and I want to, but I just need a little help. This is what my script looks like so far, I have got the file loaded into virtualdub, so there's a start. So what do I do now? Do I need to download the colourlike plugin and put it into the plugins folder? Is that it? What is the next step?
This is what my script looks like so far...
HD refers to the high def version of the movie, so I have got that loaded into virtualdub. So what's next? Please.
Follow recommended thread but i would do something like this (never used colourlike() before):
dvd = ffVideoSource("Superman III- DVD 01.mkv") #[not sure about Trim].Trim(3,0) hd = ffVideoSource("Superman III- blu ray 01.mkv ")#[not sure about rest of line].AssumeTFF().ConvertToYV24().AddBorders(1,0,0,0,color_white).Crop(0,0,-1,-0).ConvertToYV12() #dvd.Crop(16,16,-16,-16).WriteHistogram("dvd_hist_1.txt", 1) # cropping to ignore black borders, head switching noise, etc. #[in your case bigger crop may be required - on provided samples there is large blac area deteced by ffmpeg as:'crop=656:416:32:82'] #hd.Crop(16,16,-16,-16).WriteHistogram("hd_hist_1.txt", 1) hd.colourlike("hd_hist_1.txt", "dvd_hist_1.txt")
Ok I just tried this script, but I get an error message when I import the script into virtualdub that says the following:-
AviSynth open failure:
Script error: there is no function named "colourlike"
(C:\Users\Hits\Desktop\test.avs, line 7)
Do I not need to install the colourlike plugin? Is that why I am getting this error?
It turns out ColourLike() doesn't work well for these videos. The differences are too non-linear.
I suspected it strongly early in this thread. But you know how it is with disagreement around here: much depends on who disagrees with whom.
Colourlike depends on two entities that are more similar than they are different. There are too many differences here, in resolution, exact or nearly exact frame placement, color system, etc., etc., etc. It's not a silver bullet and it's can't do magic. But of course you can always lock and load and see what might happen. It would be easier to tone down the neon colors in the DVD. The BluRay looks better but undernourished. I returned both versions to Amazon and got a cleaner version with my HD PVR off cable.- My sister Ann's brother
Avisynth open failure:
Evaluate: unrecognised exception!
(C:\Users\Hits\Desktop\test.avs, line 7)
LMotlow, if what you are saying is true and I am wasting my time with colourlike, then what's the direction for me? Did you say you captured the movie and have it on HDtv rip? Are the colours accurate on this?
I'm pretty sure they adjusted colors of different objects differently. For example, they probably built a mask from the red cape (via the hue) then applied a specific transformation just for that. And applied a different transformation for the blue suit, etc. So you'd have to reverse the process for those specially treated object. AviSynth isn't the right tool for this type of work but here's a crude example. After cropping, resizing, and rec.709 to rec.601 color conversion:
[Attachment 38815 - Click to enlarge]
[Attachment 38816 - Click to enlarge]
BD frame, only the red cape adjusted (and a few other red objects):
[Attachment 38817 - Click to enlarge]
redmask = bdcolor.MaskHS(StartHue=95, EndHue=105, MinSat=30, MaxSat=150).BilinearResize(bdcolor.width, bdcolor.height) bdcolor = Overlay(bdcolor, bdcolor.Tweak(hue=-10, sat=0.8, cont=1.5), mask=redmask)
Avisynth. You'll have to do it sooner or later anyway if you ever want to climb out of the push-buitton NLE mindset and get what you want. I can't answer for "accurate" colors, accurate relative to what? Can you judge the accuracy of a video's color from your TV or PC monitor? How accurate are your displays? How about the original theatrical movie release? Do you see anything different about those sources for this movie? I do. I prefer colors to be what the creators had in mind, if that can be determined. Otherwise you just have to suit yourself. As for "accurate" concerning your posted samples, none look anything like the movie or real-llife colors.
Last suggestion is that if the real issue is that you want color in any video to be exactly what you want (and I don't blame you), hunker down on basic color theory and correction techniques and learn to roll your own, so to speak. That's what most people do who want color their way. And it's really the only way to get what you want. There must be umpteen Photoshop, Vegas, and FCP free tutorials out there on color work, so have at it. Be sure to calibrate your monitor and your TV with something like XRite and i1 display colorimeters.
Learn Avisynth basics, at least. Your eyes will be glad you did. I had to use it ro make losssless versions for tweaking some of the colors on the PVR recording I made. My guide is what I saw in many showings of the theatrical film, which not everyone will agree with. And, no, digital showings of the movie are not "true-to-life accurate" in any way.
Last edited by LMotlow; 4th Oct 2016 at 22:57.- My sister Ann's brother
Ok what do you all think to this? I did this using the Hue/Saturation filter in Virtualdub. I fixed the blue, the red is as it was, but I'm not too bothered about the red to be honest, t's mainly the blue that bothers me. The only issue I have with this though, you'll notice a very faint yellow hue around the edge of the S symbol when he is looking at his passport photo, and in this same shot, look at the boy's mothers blue top, there are small blocks of pixelation. If it wasn't for these two issues, I'd have exactly what I want!
I should have known better than to get involved. If you're that undiscriminating, make any color look any way you want. That HD Test.avi looks like crap by anyone's measure who understands color. Do what you will.- My sister Ann's brother
Perhaps using some Video Editor with colour grading will be easier for You even if usually such tools are more complex and demanding than Avisynth or ffmpeg (IMHO).
You can check https://www.blackmagicdesign.com/products/davinciresolve/color or similar more advanced video editor to see how colour is prepared before producing BD so you need to invert this kind of processing and perhaps anyway it will be easier.
As near as I can gather from official Superman sites and color sites, these are the RGB values for Superman's suit, listed as "Superman Blue", "Superman Red", and "Superman Yellow", none posted together but found separately on different websites:
The official Superman logo is posted on several sites:
Note on the logo that blue and yellow are about the same as the palette, but the brightest red in the center is
on every post I was able to copy, and darker at the edges (reduced red).
Ambient light, highlights, shadow, etc., will affect the exact hue. Copy these Use these as a guide. Colors might display differently in your browser. Colorists woulkd use pixel samplers to check color matches. Most advanced NLE's and color apps will have pixel samplers and other aids. What you do with skin color and other objects is up to you.- My sister Ann's brother
I'm not after pinpoint accuracy on the blue, I just want it to be blue to the eye. Anyway I've thought of another idea. The whole reason I wanted to do this was because the DVD version contains visible wires on just a few scenes, but technically speaking, I can take out those exact scenes from the blu ray and put them into the dvd version, and downscale it so it seems seamless. I'll just do that.