VideoHelp Forum
+ Reply to Thread
Page 3 of 3
FirstFirst 1 2 3
Results 61 to 73 of 73
Thread
  1. 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
    Search Comp PM
    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
    Search Comp PM
    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.php?p=1499620#post1499620
    Quote Quote  
  4. Member pirej's Avatar
    Join Date
    Mar 2008
    Location
    Macedonia
    Search Comp PM
    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
    Search Comp PM
    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 06:54.
    Quote Quote  
  6. Member pirej's Avatar
    Join Date
    Mar 2008
    Location
    Macedonia
    Search Comp PM
    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 07: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  
  8. Originally Posted by pirej View Post
    Thank's poisondeathray, this are the scripts, but i didnt tweak anything, so there might be a room for improvement.
    source script
    second script
    edit: this is screenshot of the 2 steps, source=>poisondeathray's script=>Didée's script
    Wow, this looks awesome, but i can't find, where in the script i can write the source and destination path of my video file, if my video file is on C:\Testvideo.

    How can i add it in this script?
    Quote Quote  
  9. Ok, the problem was that the downloaded file was corrupted, so the problem is solve now but got this error in avisynth which is in script "ChubbyRain2.avsi:

    "There is no function named "mt_convolution""

    I have read that this function is a part of masktools, but i have already tried different versions of masktools and bifrost, but this message don't get away.

    Do somebody have a solution for this error message?
    Quote Quote  
  10. Member pirej's Avatar
    Join Date
    Mar 2008
    Location
    Macedonia
    Search Comp PM
    Oh boy, when i see what i have done 5 years ago.. i must have been smarter then
    Sorry 49anxname , i'm totally out of everything related to avisynth now, i visited videohelp just to download virtualDub to try the "deshaker" on one new clip.
    I have went from xp->win7->win8->win10 since then, and haven't used avisynth for years.
    Good luck.
    Quote Quote  
  11. Ok, thanks anyway, but i have found the solution. My problem was that i had more versions of avisynth installed, and the needed plugins and dll files in a folder of another version, so thats why the script didn't found the needed functions.

    So now your Scripts are working and i have to say, they are awesome!!!
    Very good Job, they helped me a lot!!!
    Quote Quote  
  12. Video Restorer lordsmurf's Avatar
    Join Date
    Jun 2003
    Location
    dFAQ.us/lordsmurf
    Search Comp PM
    I use ChubbyRain, and have no issues.
    I'd need to see a test clip, and a copy of the exact script.
    Want my help? Ask here! (not via PM!)
    FAQs: Best Blank DiscsBest TBCsBest VCRs for captureRestore VHS
    Quote Quote  
  13. You can download the scripts on the second page in Post #45 (https://forum.videohelp.com/threads/308840-old-VHS-restoration?p=2077635&viewfull=1#post2077635)
    Than you can try it on your small damaged or in bad quality created video
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!