Hi! I've recently digitized my family's video 8 cassettes using a Sony Hi8 camcorder with TBC, S-Video and a Hauppauge USB capture card (encoded losslessly with Logarith).
I'm rather pleased with the results, but I have no experience with editing VHS-like raw material, and I'd appreciate any tips as to what tools/scripts to use to improve the quality (colour, interlacing, occasional artifacts, whatever else can be done with this kind of footage). I'm familiar with video editing tools, mainly Premiere, but I'm willing to spend some time on it and experiment. I've heard Avisynth scripts can yield good results with analog sources, but I've only just started looking into it.
You can watch the sample here.
It is pretty representative of all other tapes I have (all were watched perhaps twice and not for about 25 years, were recorded with the same camera and stored at the same place).
+ Reply to Thread
Results 1 to 9 of 9
Your brights are blown out and the black level is pretty high. See if the capture device's video proc amp can get them in line.
Oops, wrong thread.
jagabo may have posted in the wrong thread, but he is correct: your whites are completely blown out. It's a HUGE loss of detail, and unlike shadows, which if too dark can sometimes be brightened to recover some detail, once whites are blown out, you've lost the detail forever.
So, you still need to do some work. I don't want to sound mean, but if this were for a client, I would not deliver it in this state. You can see the above 100 levels in the Vegas videoscope screen shot below.
Yes, the "oops" message was a post that was meant for another thread. The bad levels message was for this thread.
Since you've started looking into AviSynth you can view the levels with AviSynth. If you don't know what a waveform monitor is see this thread:
You can use Histogram() in AviSynth to see a waveform monitor. Histogram() can show many different things but the default is a waveform monitor. I prefer the tradition horizontal format (what one would see on an oscilloscope) so I use:
[Attachment 57943 - Click to enlarge]
The brown areas at the top and bottom indicate respectively parts of the picture that are too bright and too dark. Not all shots will have full white and full black but here you can see the darkest parts of the picture are nowhere near black, and the brightest parts of the picture are crushed at the top of the graph. A better capture would looks something like:
[Attachment 57944 - Click to enlarge]
I just pulled the levels down here. The peak whites would have been higher but they were crushed in the original cap and can't be restore. The black bars at the far left and far right of the frame don't matter. But you want the vast majority of your picture to be between the brown bars, with the brightest areas near the top bar, the darkest areas near the bottom bar.
You need to use the videoscopes, but a quick and dirty method is to look at white shirts. You should be able to see texture, buttons, and features, like pockets. The auto exposure on most camcorders did a pretty reasonable job not crushing the whites (with exceptions for things like a follow spot in a stage production), so in all likelihood the details are there.
If you have any commercial video tapes, some of them had color bars at the beginning and/or end of the tape. These can be very useful for setting up the levels, and you can easily find tutorials online which show how to do this.
Note that if you are reading an analog scope correctly with colorbars, if you have luma at 100% and it has color, it will venture above 100% yet this is normal (as, in analog, the colors' chroma signal would have been modulating the luma signal). If the combination of luma & chroma slightly ventures above 100 to say 108-113 and very occasionally up to 120, this might still mean that the luma is staying within bounds.
Of course, if you can change your scope to show only luma it will be much clearer where your hard limits are.
The avisynth scope/histogram function that was mentioned is already designed to show you the luma levels separate from the chroma, so you should get an accurate assessment of your material.
Remember, if you have the capability, it's always best to do a proc amp adjustment in the analog domain prior to it being captured/digitized to best avoid irretrievably clipping highs & lows.
If you can't recapture and adjust the proc amp settings you could try in Avisynth something like
Last edited by Sharc; 22nd Mar 2021 at 06:35.
Hauppauge USB capture card
You can access to the proc amp settings from VirtualDub or AmarecTV (or a Graph).
The card can capture 16-254, it is ok to have some white in the "brown area" because they can be moved in the 235 range later.
As the others (very experienced people) said, what is important is that you play with the proc amp settings to avoid "crushed" blacks and whites, because they cannot be recovered later.
In addition to Histogram() you can use Limiter to highlights the wished luma and chroma areas.
As a standard filtering (but for recording coming from noisy broadcast programs) I generally use the following (the parameters must be appropriate for your source):
### levels and colors correction before filtering
# ColorYUV used to adjust luma contrast to limit and center luma hystogram, and to correct colors
# Tweak used to adjust luma contrast and colors saturation (hue and brightness not used)
# LevelsLumaOnly used to adjusts luma brightness, luma contrast, and luma gamma
ColorYUV(cont_y=cont_y, off_y=off_y, off_u=off_u, off_v=off_v).\
Tweak(sat=sat, cont=cont, coring=false, dither=true).\
LevelsLumaOnly(input_low=input_low_1, gamma=gamma_1, input_high=input_high_1, output_low=output_low_1, output_high=output_high_1, coring=false, dither=true)
TemporalDegrain2(degrainTR=degrainTR, postFFT=postFFT, postSigma=postSigma)
LSFmod(strength=strength, overshoot=overshoot, ss_x=1.5, ss_y=1.5, secure=false, Spwr=2, SdmpLo=strength/25, SdmpHi=0, soothe=false, keep=25, edgemaskHQ=true)
### levels correction after filtering
# LevelsLumaOnly used to adjusts luma brightness and luma contrast
LevelsLumaOnly(input_low=input_low_2, gamma=gamma_2, input_high=input_high_2, output_low=output_low_2, output_high=output_high_2, coring=false, dither=true)
### final color correction in VirtualDub if needed
If your source is interlaced, and you use filters for "progressive video", you may consider to de-interlace before filtering and interlace back at the end.
Hope it helps as a starting point.
An example is here (stabilization and dehalo is also used)
With avisynth and its filters you'll have many more options!
Last edited by lollo; 22nd Mar 2021 at 10:10.