View Full Version : Correcting VHS line problems
tygerbug
26th February 2026, 19:23
http://orangecow.org/shared/vhslinedamage01.png
http://orangecow.org/shared/vhslinedamage02.png
http://orangecow.org/shared/vhslinedamage03.png
I've been working on a VHS restoration, and have been sent a new source which I will be combining with the previous sources. It's therefore important that any tape damage be removed early and not baked into the combined edit.
The new source has a fair amount of damaged lines, as you can see in the above screenshots, which last for a frame or two. They're usually white with black dots. The previous source also has more serious and long-lasting black lines.
This will also be noise reduced (likely with Neatvideo) and deinterlaced to 59.94 with QTGMC, neither of which cope well with this sort of thing.
I'd like to use a filter which can get rid of the lines, rather than doing this laboriously by hand, especially at this late stage of the edit.
I can do it in VirtualDub2 or Hybrid, although I'm not great at Avisynth scripting.
I have an old version of PFClean which has not always been great for this.
How would you tackle this?
https://drive.google.com/drive/folders/1OhXEuJf4R-DqrFGPTV2Lcc977IK5ZzuB?usp=drive_link
DTL
26th February 2026, 23:13
At first may be deinterlaced with QTGMC(preset="slow"). Also some denoising may be applied here too (see denoise params of QTGMC).
To fix single (and may be up to dual frames defects) you need some temporal median filtering. See examples with RIFE - https://forum.doom9.org/showthread.php?p=2028277#post2028277 . Also mvtools2 motion compensation possible for the same temporal median filtering - see Spotless script at https://forum.doom9.org/showthread.php?t=181777 thread for example.
jpsdr
27th February 2026, 18:53
A simple threshold median could also do the job for just removing the line. I have shuch a filter in my VirtualDub filters, but not in my avisynth filters.
tygerbug
27th February 2026, 19:07
jpsdr: That might work, I'll have a look.
Hmmm ... I probably have to be careful with it, but it would take care of the one-line errors.
AVIL
27th February 2026, 23:54
Hi:
You can try this plugin:
http://avisynth.nl/index.php/DePulse
or this:
http://avisynth.nl/index.php/KillPulse
jpsdr
1st March 2026, 11:28
jpsdr: That might work, I'll have a look.
Hmmm ... I probably have to be careful with it, but it would take care of the one-line errors.
Chose "Vertical" with a filter size of 2, if video is interlaced check "Interlace mode". That's the setting i used for VHS stuff like this, most of it the famous "white drop".
"Test mode" allow you (with "Show previous") to adjust the threshold value (and/or filter size also), as it will "shows" where the filter will be applied.
lollo2
1st March 2026, 11:47
You can try FixRipsp2:
https://forum.videohelp.com/threads/403553-Restoring-VHS-Tapes-with-Damage-(White-Horizontal-Lines-Colour-Distortion)#post2635329
https://forum.videohelp.com/threads/412530-Removing-Horizontal-Line-Shifting-on-VHS#post2714368
But be careful, is very destructive!
tygerbug
1st March 2026, 15:58
Chose "Vertical" with a filter size of 2, if video is interlaced check "Interlace mode". That's the setting i used for VHS stuff like this, most of it the famous "white drop".
"Test mode" allow you (with "Show previous") to adjust the threshold value (and/or filter size also), as it will "shows" where the filter will be applied.
"Interlace mode" doesn't seem to work, just applying a median filter generally without a threshold.
Non-interlaced mode also attacks the interlacing, so is not an overall solution.
Maybe if I decouple the interlaced fields side by side; that should work.
EDIT: Hm, that still ends up being too destructive, basically an overall median filter. (1 size rather than 2.)
I'll have to try the others .... I need an overall solution which would take care of the most obvious stuff without frame by frame intervention. At least by the end, when the little white bursts are constant. I am doing frame by frame stuff but need to get the required amount of that down.
EDIT: Trying Depulse now. Looks promising.
The frame count is now apparently a little off, which is concerning. I'll have to find out what's happening there. 10426 becomes frame 10404 .... I'll have to export everything as an AVI rather than working from MPEG/D2V I think, to avoid whatever is happening with the sync.
(EDIT: Yes, exporting an AVI first is an extra step, but keeps the right frame count. Something wrong was happening with the D2V project I suppose.)
I haven't rendered it yet, but DePulse seems to get the white bursts, keeping only the multi-frame black ripples or other underlying errors. That should be good enough to get me to the next step of hand cleanup. Not sure about black line pulses yet, which are present in the other source.
EDIT: Don't think it takes care of the black lines, even when inverted. KillPulse wasn't doing much.
Settings are:
ConvertToYUY2()
DePulse (h=100, l=100, d=30, debug=false)
Maybe DeScratch? Oh, it's 64 bit only, maybe? I can only load 32 bit without crashing.
EDIT: Deleted most of my plugins and got 64-bit VDub2 and DeScratch to load. Figuring out settings, was too low at first and now too high. It's too blunt an instrument for this I think.
Is there really nothing which takes care of 1-pixel black lines without destroying the image? Maybe DeVCR or RemoveLine? I can't get these to work quite yet. Lot of errors.
EDIT: Got DeVCR to work. It's not doing anything good with current settings. Messed around with the one available parameter number, and it destroys a lot of detail while ignoring the black lines.
Even with the highest settings of its one parameter, DeVCR is doing nothing about the black lines while destroying detail elsewhere.
It feels like these black lines should be an easy thing for a filter to notice spatially and temporally, but nothing seems to work well so far.
At this point I may be forced to fix the black lines manually for the two worst segments (Photoshopping a thousand frames or more) and do nothing about the rest.
I do have secondary sources which could be compared, but they are somewhat different looking visually, rather than a near-identical capture.
I want to remove as much damage as possible before combining the sources. If I weren't combining sources I could just let the situation be.
Boulder
6th March 2026, 08:27
There are some older options you may wish to explore. The latter one is particularly interesting if you have a source which doesn't have the dropouts.
https://forum.doom9.org/showthread.php?t=166853
https://forum.doom9.org/showthread.php?t=170216
Sharc
6th March 2026, 08:46
You may also want to substitute the bad frames with motion interpolated frames of adjacent good frames, e.g. using RIFE.
Can be a bit laborious though to identify the damaged frames/fields of the video.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.