VideoHelp.com Forum
+ Reply to Thread
Page 3 of 3
FirstFirst 1 2 3
Results 61 to 67 of 67
Thread
  1. Member
    Join Date: Sep 2007
    Location: Canada
    The log file output syntax is different between dedup , getdups and tivtc, I don't know which one is preferrable. Dedup also contains a 2nd pass decimation function with timecode output, so you can create an in-sync VFR file minus the dupes

    But the question was how to get mflowinter to use that log file (even a manually generated one) so you can replace the dupes, not decimate them ?
    Quote Quote  

  2. Member pirej's Avatar
    Join Date: Mar 2008
    Location: Macedonia
    Originally Posted by poisondeathray View Post
    But the question was how to get mflowinter to use that log file (even a manually generated one) so you can replace the dupes, not decimate them ?
    That would be a good one
    I thought that the script that i use was good-enough, but this.. would be great.

    This is the script that i use, but i do a manual search for the "problematic" frames/fields:
    Code:
    function RecoverFramePair(clip Source, int N)
    {
    	# N is number of the first frame in Source that needs replacing. 
    	# Frames N and N+1(O) will be replaced.
    	
    	Source.trim(0,N-1) ++ CandidatesForN.trim(N-1,-1) \
        ++ CandidatesForO.trim(N-1,-1) ++ Source.trim(N+2,0)
    }
    
    function RecoverOneFrame(clip Source, int N)
    {
    	# N is number of the frame in Source that needs replacing. 
    	# Frame N  will be replaced.
    	
    	Source.trim(0,N-1) ++ CandidatesForC.trim(N-1,-1) ++ Source.trim(N+1,0)
    }
    
    Source
    
    	Sup = msuper()
    	bv = manalyse(Sup, isb=true, delta=3)
    	fv = manalyse(Sup, isb=false, delta=3)  
    global 	CandidatesForN = mflowinter(sup, bv, fv, time=33.3, ml=100)
    global 	CandidatesForO = mflowinter(sup, bv, fv, time=66.7, ml=100)
    global 	CandidatesForC = mflowinter(sup, bv, fv, time=50.0, ml=100)
    
    RecoverOneFrame(7)
    RecoverFramePair(26)
    RecoverOneFrame(30)
    RecoverFramePair(50)
    Quote Quote  

  3. Member
    Join Date: Jul 2009
    Location: Spain
    Originally Posted by pirej View Post
    Code:
        bv = manalyse(Sup, isb=true, delta=3)
        fv = manalyse(Sup, isb=false, delta=3)
    I can see delta=3 makes sense for RecoverFramePair, but shouldn't it be delta=2 for RecoverOneFrame?

    Also your functions won't work for the case N=1.
    You need to replace Source.Trim(0, N-1) by Source.Trim(0, -N).

    If you need to recover more than two consecutive frames, see this Doom9 post (and my comments which follow it):
    http://forum.doom9.org/showthread.ph...20#post1499620
    Quote Quote  

  4. Member pirej's Avatar
    Join Date: Mar 2008
    Location: Macedonia
    Thank's Gavino, yes it should be delta=2, but i wanted to have 1 superclip and 1 set of vectors.. for all the recovering's.
    Its very easy to write " rec(22), rec2(55), rec(59)... etc
    Actually i don't use this script a lot, but i guess i should change something.
    Quote Quote  

  5. Member
    Join Date: Jul 2009
    Location: Spain
    The way you have it now, RecoverOneFrame(22) will replace frame 22 by interpolating 50% between frames 21 and 24, instead of 23. If you really want to have just one set of vectors, you could change to use 33% here (ie use CandidatesForN instead of CandidatesForC in RecoverOneFrame), but it would be more accurate (and no great overhead) to add a second set of vectors
    Code:
    bv1 = manalyse(Sup, isb=true, delta=2)
    fv1 = manalyse(Sup, isb=false, delta=2)
    and use bv1 and fv1 instead of bv and fv when creating CandidatesForC.
    Code:
    global     CandidatesForC = mflowinter(sup, bv1, fv1, time=50.0, ml=100)
    [Edited to add:]
    Originally Posted by pirej View Post
    Its very easy to write " rec(22), rec2(55), rec(59)... etc
    Was this in reference to my comment about "recovering more than two consecutive frames"?
    What I meant by that was if you have three (or more) bad frames together, eg want to replace 22-24 by interpolating between 21 and 25, which your functions cannot do.
    Last edited by Gavino; 12th May 2011 at 05:54.
    Quote Quote  

  6. Member pirej's Avatar
    Join Date: Mar 2008
    Location: Macedonia
    Thanks Gavino, i didint have time to check my script, ill do it now and ill see what will came up.
    Was this in reference to my comment about "recovering more than two consecutive frames"?
    NO, it wasn't, all i ment was that using my script it was easy for me to input the frame-numbers that needed replacing.
    I have renamed the functions to rec(recover one frame) and rec2(recover two frames), so that ill have even less writing to do.
    In example:
    RecoverOneFrame(7)= rec(7)
    RecoverFramePair(26)=rec2(26)

    edit: i changed the delta to 2, and added another set of vectors, and i get better interpolation now.
    Thank's again.
    Last edited by pirej; 12th May 2011 at 06:32.
    Quote Quote  

  7. Yes! YES! YES!!! I had hoped to restore my video file. I've been waiting for this moment for three years. Tomorrow I upload a piece of family film. On it two or one broken frames every five seconds and I do not know what to replace them, so that the video was correct.

    I've never worked with avisynth but I will try for a result.
    Quote Quote  




Similar Threads

  1. VHS Restoration
    By Asesinato in forum Restoration
    Replies: 239
    Last Post: 25th Apr 2012, 21:11
  2. old vhs restoration
    By ishwinderjauhar in forum Restoration
    Replies: 16
    Last Post: 24th Sep 2011, 09:03
  3. Some of my vhs restoration work
    By henryperu77 in forum Restoration
    Replies: 3
    Last Post: 23rd Apr 2011, 00:24
  4. VHS restoration
    By degacci in forum Restoration
    Replies: 5
    Last Post: 5th May 2008, 02:02
  5. VHS-C restoration
    By dlarry in forum Restoration
    Replies: 10
    Last Post: 25th Sep 2007, 21:14
Search   Contact us   About   Advertise   Forum   RSS Feeds   Statistics   Tools