#1  
12-01-2017, 08:13 PM
Padawan Padawan is offline
Free Member
 
Join Date: Jun 2017
Posts: 42
Thanked 1 Time in 1 Post
Hello,

I have some old footage of a wedding.

http://cdn4.digitalFAQ.com/padawan/ParentsWedding.mpg

Originally this was copied to VHS from an unknown source then 10 years ago it was dubbed from VHS to DVD.

The groom copied over all but 2 minutes of the VHS with horse racing so what is left is very small (174Mb) which I have split into 2 RAR files.

Do you think this is even possible to improve? I wouldn't think so but I promised I would ask. If so could you please suggest what Virtualdub filters would be best to use?

Regards,
Paul

Last edited by lordsmurf; 12-02-2017 at 12:58 AM. Reason: Removed attachment, added cdn4 link
Reply With Quote
Someday, 12:01 PM
admin's Avatar
Ads / Sponsors
 
Join Date: ∞
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
  #2  
12-01-2017, 09:12 PM
lordsmurf's Avatar
lordsmurf lordsmurf is online now
Site Staff | Video
 
Join Date: Dec 2002
Posts: 13,510
Thanked 2,449 Times in 2,081 Posts
You attached 2 files that don't unRAR. I'm getting an error. Bad archive. I vaguely remember WinRAR screwing around with files on newer versions, but I'm not upgrading mine (aka buying it again) just for that. I dislike it when companies break stuff in order to make you buy it again (see also Microsoft Office, which I ditched in favor of OpenOffice). Consider a 7zip multipart instead.
Fixed.

- Did my advice help you? Then become a Premium Member and support this site.
- For sale in the marketplace: TBCs, workflows, capture cards, VCRs
Reply With Quote
  #3  
12-01-2017, 09:26 PM
Padawan Padawan is offline
Free Member
 
Join Date: Jun 2017
Posts: 42
Thanked 1 Time in 1 Post
Hi Lord Smurf, I just downloaded those files and managed to unrar them to a single MPEG2 file.
Ah I just got your email about the other DVD so I will do as you ask.
Regards, Paul

Fixed.
Reply With Quote
  #4  
12-02-2017, 01:03 AM
lordsmurf's Avatar
lordsmurf lordsmurf is online now
Site Staff | Video
 
Join Date: Dec 2002
Posts: 13,510
Thanked 2,449 Times in 2,081 Posts
Yes, that can be improved. I just need a little time to show you how.

- Did my advice help you? Then become a Premium Member and support this site.
- For sale in the marketplace: TBCs, workflows, capture cards, VCRs
Reply With Quote
  #5  
12-02-2017, 12:40 PM
sanlyn sanlyn is offline
Premium Member
 
Join Date: Aug 2009
Location: N. Carolina and NY, USA
Posts: 3,648
Thanked 1,307 Times in 982 Posts
The original source, before it was copied/recorded multiple times or whatever, doesn't look like taped video source. It looks like film source recorded off a projection screen with a video camera that was running at a faster frame rate than the filmed movie. There are blended imaghes between frames and shifting objects due tom the difference between playing and recording speeds. TFM().Tdecimate() (inverse telecine) isn't perfect at cleaning up the blends, but indicates the original was film at 20fps.

IMHO.

Last edited by sanlyn; 12-02-2017 at 12:51 PM.
Reply With Quote
  #6  
12-04-2017, 02:11 AM
lordsmurf's Avatar
lordsmurf lordsmurf is online now
Site Staff | Video
 
Join Date: Dec 2002
Posts: 13,510
Thanked 2,449 Times in 2,081 Posts
It was obviously film transferred to VHS. And actually, better than most I see. It's fairly stable, and has good detail. I plan to look at it more in due time, but I have Avisynth scripts for film (mine, not VideoFred's/etc).

I'm thinking a basic TFM(), maybe. Sometimes other tricks work better (srestore, etc)
Non-template QTGMC().
Maybe my stabmod(), but Mercalli is probably called for here.

It can be better. That's the important part. He wanted some good news -- and he got it.

He doesn't know it yet, but he's going to be my guinea pig for the new Avisynth guide. He knows nothing, which is perfect. With his Q&A, it will be developed. The you and I and others can refine some advanced guides off it.

- Did my advice help you? Then become a Premium Member and support this site.
- For sale in the marketplace: TBCs, workflows, capture cards, VCRs
Reply With Quote
  #7  
12-04-2017, 03:06 AM
Padawan Padawan is offline
Free Member
 
Join Date: Jun 2017
Posts: 42
Thanked 1 Time in 1 Post
Oh crap
Reply With Quote
  #8  
12-10-2017, 11:08 AM
lordsmurf's Avatar
lordsmurf lordsmurf is online now
Site Staff | Video
 
Join Date: Dec 2002
Posts: 13,510
Thanked 2,449 Times in 2,081 Posts
First converted video from MPEG to lossless in VirtualDub, I don't like loading MPEG direct from Avisynth.

Note that I use both Lagarith and Huffyuv, depending on other software in use. For example, Mercalli needs Huffyuv, while MainConcept x64 needs Lagarith. So I switch as needed.

This took 5 passes.

Fix chroma pass1
Code:
AVISource("c:\padawan ParentsWedding SRC.avi")
AssumeTFF()
ConvertToYUY2(interlaced=true) 
ChromaShift(C=2, L=-2)
Remove dropouts script, pass2. Too long to post here, will post in reply.

VirtualDub crop bottom head-switching noise, pass 3.
You don't want that noise to be stabilized. Leave all other borders alone.

Deinterlace pass 4
Code:
AVISource("c:\padawan pass3 +crop.avi")
AssumeTFF() 
ConvertToYV12(interlaced=true) 
QTGMC(Preset="Slower", SourceMatch=3, Lossless=2, MatchEnhance=0.75, TR2=1, Sharpness=0.1) 
SelectEven()
Mercalli v3 SAL for pass5.

The dropout script removed all film grain. Film grain gives a false notion of detail. When removed, it looks too smooth and too soft, even though it really is. (BTW, same issue with VCRs being accused of "softening" an image, when it's really just removing noise.) So pas5 puts back 5 pixels luma grain with MSU add grain filter.

And done.

Mercalli was skipped for non-stabilization version.

A stab() or stabmod() could be created in Avisynth, and the outcome would be less borders, but with less stabilization. Choices, choices. Since nothing important was really lost by the 50% image border, yet good stab was gained, that'd be my pick here.


Attached Files
File Type: mp4 padawan before-after Lag_out 99.mp4 (70.30 MB, 42 downloads)
File Type: mp4 padawan before-after +stabMerc Lag_out 99.mp4 (62.17 MB, 25 downloads)

- Did my advice help you? Then become a Premium Member and support this site.
- For sale in the marketplace: TBCs, workflows, capture cards, VCRs
Reply With Quote
The following users thank lordsmurf for this useful post: captainvic (06-20-2019), wimvs (12-10-2017)
  #9  
12-10-2017, 11:34 AM
lordsmurf's Avatar
lordsmurf lordsmurf is online now
Site Staff | Video
 
Join Date: Dec 2002
Posts: 13,510
Thanked 2,449 Times in 2,081 Posts
Code:
SetMemoryMax(2048) 
SetMTMode(5,8) 
AVISource("c:\.avi")
ConvertToYV12(interlaced=true)
SetMTMode(4,8)  
AssumeTFF()
SeparateFields() 
a=last
clense(reduceflicker=false).merge(last,0.5).clense(reduceflicker=false)
mot=removegrain(11,0).removegrain(20,0).DepanEstimate(range=2)
take2=a.depaninterleave(mot,prev=2,next=2,subpixel=2)
clean1=take2.TMedian2().selectevery(5,2)
sup1 = clean1.minblur(1).removegrain(11,0).removegrain(11,0)
 \           .mt_lutxy(clean1,"x 1 + y < x 2 + x 1 - y > x 2 - y ? ?",U=2,V=2)
 \           .msuper(pel=2,sharp=0)
sup2 = a.msuper(pel=2,levels=1,sharp=2)
bv22=sup1.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
bv21=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
fv21=sup1.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
fv22=sup1.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
interleave(a.mcompensate(sup2,fv22),a.mcompensate(sup2,fv21),a,a.mcompensate(sup2,bv21),a.mcompensate(sup2,bv22))
TMedian2().selectevery(5,2)
sup3 = last.msuper(pel=2,sharp=2)
bv33=sup3.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
bv32=sup3.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
bv31=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
fv31=sup3.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
fv32=sup3.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
fv33=sup3.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
last.mdegrain3(sup3,bv31,fv31,bv32,fv32,bv33,fv33,thSAD=499)
Interleave() 
Weave()
function MinBlur(clip clp, int r, int "uv")
{
uv   = default(uv,3)
uv2  = (uv==2) ? 1 : uv
rg4  = (uv==3) ? 4 : -1
rg11 = (uv==3) ? 11 : -1
rg20 = (uv==3) ? 20 : -1
medf = (uv==3) ? 1 : -200
RG11D = (r==0) ? mt_makediff(clp,clp.sbr(),U=uv2,V=uv2)
 \    : (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2)
 \    : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2)
 \    :          mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)
RG4D  = (r<=1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2)
 \    : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2)
 \    :          mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)
DD    = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
clp.mt_makediff(DD,U=uv,V=uv)
return(last)
}
function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
{
chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
Interleave(input_1,input_3,input_5)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
m1 = selectevery(3,1)
m2  = input_1.MT_Logic(input_3,"min",chroma=chroma).MT_Logic(input_5,"min",chroma=chroma).MT_Logic(input_2,"max",chroma=chroma)
m3  = input_1.MT_Logic(input_3,"max",chroma=chroma).MT_Logic(input_5,"max",chroma=chroma).MT_Logic(input_4,"min",chroma=chroma)
Interleave(m1,m2,m3)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
selectevery(3,1)
chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
Return(last)
}
function TMedian2(clip c) {
Median2( c.selectevery(1,-2), c.selectevery(1,-1), c, c.selectevery(1,1), c.selectevery(1,2) ) }
Return(last) # MT stability

- Did my advice help you? Then become a Premium Member and support this site.
- For sale in the marketplace: TBCs, workflows, capture cards, VCRs
Reply With Quote
The following users thank lordsmurf for this useful post: wimvs (12-10-2017)
Reply




Similar Threads
Thread Thread Starter Forum Replies Last Post
How to copy VHSC tape to DVD? via Email or PM Capture, Record, Transfer 0 09-14-2012 01:25 PM
How to copy DV tape to new DV tape with audio removed? via Email or PM Edit Video, Audio 1 09-13-2012 05:55 PM
Not being able to copy with DVD Shrink Superstar Copy DVDs, Duplicate, Replicate 4 09-12-2012 03:16 PM
Please help I Can't Copy my CD Chala Blank Media 19 02-17-2010 04:04 PM
What do you use to copy your DVD's? wheezer210 Copy DVDs, Duplicate, Replicate 10 02-01-2006 11:50 AM

Thread Tools



 
All times are GMT -5. The time now is 10:02 AM