VideoHelp Forum
+ Reply to Thread
Results 1 to 16 of 16
Thread
  1. Hello Videohelpers
    As always need some video restoration help, i have some dvd not sure they are hard telecide or some more terrible stuff than that which i want to fix if it's possible ,but to be honest i do not have much experience about some 29.970 DVD's like this one i m trying. Any help on fixing the problem will be much appreciated.

    here is sample video : https://www.sendspace.com/file/r4ptpo
    script in a code below i've trying with to fix it with QTGMC-3.33d + srestore 2.7e
    Code:
    # Set DAR in encoder to 569 : 240. The following line is for automatic signalling
    global MeGUI_darx = 569
    global MeGUI_dary = 240
    
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\dgindex\DGDecode.dll")
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\avisynth_plugin\ColorMatrix.dll")
    
    DGDecode_mpeg2source("C:\Users\Uzer\Videos\VTS_0ACR.d2v", cpu=4, info=3)
    
    ColorMatrix(hints=true, interlaced=true, threads=0)
    
    AssumeTFF()
    
    QTGMC(Tr2=2,"slower")
    
    srestore()
    
    Vinverse()
    # problem is weird 
    #25.000 @ Frame num: 11/12/587/588/776/777 (here 2 dodgy frame shows up )
    #23.976 @ Frame num: 11/411/564/746/826 (here are one difference only 1 dodgy frame shows up)
    Problem is where scene change it show the next frame as it appears up before it match to next frame (last or next frame shows up after\before scene change), i would love to see some good idea about how to i fix it.TIA
    Quote Quote  
  2. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Why is this video stretched to 2.40:1 DAR?
    - My sister Ann's brother
    Quote Quote  
  3. Originally Posted by LMotlow View Post
    Why is this video stretched to 2.40:1 DAR?
    have no clue sargent , it came like that http://prntscr.com/gry41v
    Quote Quote  
  4. I think Sendspace turned to crap recently:

    "Note your download is limited to a max of 80KB/s"

    You have a field-blended source. You always will keep blends on either side of scene changes. That's the price you pay by working with the worst DVDs in the world - the ones from Indian media companies. However, with just:

    QTGMC()
    SRestore()


    I'm seeing barely noticeable problems at scene changes

    If you're willing to go through and fix them manually (I do), I have a function that does an outstanding job. Just ask. If you want them fixed automatically, this one will Freezeframe all scene changes on both sides of the scene change, something you might not want:

    A=Last
    prev = A.selectevery(1,-1)
    next = A.selectevery(1,1)
    SCclean = A.SCSelect(next,prev,A,dfactor=2.0) # 2.0 ~ 5.0

    return(SCclean) # return(restore) for NO scenechange cleanup


    It needs the RemoveDirt.dll. And if you set the dfactor too high, you're liable to get freezeframes at places other than scene changes.
    Quote Quote  
  5. Originally Posted by manono View Post
    I think Sendspace turned to crap recently:

    "Note your download is limited to a max of 80KB/s"

    You have a field-blended source. You always will keep blends on either side of scene changes. That's the price you pay by working with the worst DVDs in the world - the ones from Indian media companies. However, with just:

    QTGMC()
    SRestore()


    I'm seeing barely noticeable problems at scene changes

    If you're willing to go through and fix them manually (I do), I have a function that does an outstanding job. Just ask. If you want them fixed automatically, this one will Freezeframe all scene changes on both sides of the scene change, something you might not want:

    A=Last
    prev = A.selectevery(1,-1)
    next = A.selectevery(1,1)
    SCclean = A.SCSelect(next,prev,A,dfactor=2.0) # 2.0 ~ 5.0

    return(SCclean) # return(restore) for NO scenechange cleanup


    It needs the RemoveDirt.dll. And if you set the dfactor too high, you're liable to get freezeframes at places other than scene changes.
    oops,i'll check it for myself from next time before i attach a sample , it is hardly visible but i would like to fix them manually sir since that didn't performed that better automatically , much better this sound from you

    Originally Posted by manono View Post
    If you're willing to go through and fix them manually (I do), I have a function that does an outstanding job. Just ask.
    i would really like to see your function if u can sir, thank you.

    and with below Script problem SeemS not there i had to reopen the preview (out of memory error then i played again feild-blending SeemS not there but i felt like it iz kinda freezing the frame or i m wrong there)
    Code:
    QTGMC()
    SRestore()
    
    A=Last
    prev = A.selectevery(1,-1)
    next = A.selectevery(1,1)
    SCclean = A.SCSelect(next,prev,A,dfactor=2.0) # 2.0 ~ 5.0
    return(SCclean)
    Last edited by BÌG•bµdd; 1st Oct 2017 at 15:03.
    Quote Quote  
  6. Originally Posted by BÌG•bµdd View Post
    SeemS not there i had to reopen the preview (out of memory error then i played again feild-blending SeemS not there but i felt like it iz kinda freezing the frame or i m wrong there)
    If your computer isn't the fastest then because QTGMC at those settings is so slow, maybe it does seem as if it's freezing. When testing I use the much faster Yadif as the bobber:

    Yadif(Mode=1)
    SRestore()


    Then I'll put on the 'real' bobber for the actual encode. If that's not what you meant then, yes, as I already mentioned that function freezes all frames before and after each scene change. As for the better but manual function, it's called FreezeFrameMC and is attached. It requires MVTools2 and the RemapFrames.dll, both also attached.
    Image Attached Files
    Quote Quote  
  7. Originally Posted by manono View Post
    Originally Posted by BÌG•bµdd View Post
    SeemS not there i had to reopen the preview (out of memory error then i played again feild-blending SeemS not there but i felt like it iz kinda freezing the frame or i m wrong there)
    If your computer isn't the fastest then because QTGMC at those settings is so slow, maybe it does seem as if it's freezing. When testing I use the much faster Yadif as the bobber:

    Yadif(Mode=1)
    SRestore()


    Then I'll put on the 'real' bobber for the actual encode. If that's not what you meant then, yes, as I already mentioned that function freezes all frames before and after each scene change. As for the better but manual function, it's called FreezeFrameMC and is attached. It requires MVTools2 and the RemapFrames.dll, both also attached.
    sorry i m testing on my probook-6460b (encoding will be on i7-7700k ) really thanks for both of your reply's they are so helpful,
    1st done the better job but i was just making sure it is correct (and i done a test encode result is fine well better than before)
    2nd one made me think there cud be more better output and thank you for attaching those plugins to making thing easy for me, but i dont knw how to type FreezeFrameMC() never used it before

    btw i've to adopt mp_pipeline on my probook to keep the script running steady
    Code:
    Setmemorymax(1024)
    mp_pipeline("""
    
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\dgindex\DGDecode.dll")
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\avisynth_plugin\ColorMatrix.dll")
    
    DGDecode_mpeg2source("C:\Users\Uzer\Videos\VID-CRP-AR\VTS_0ACR.d2v", cpu=4, info=3)
    ### ###
    ColorMatrix(hints=true, threads=0)
    
    QTGMC()
    
    SRestore()
    ### prefetch:8,5
    ### ###
    """)
    
    loadplugin("C:\Users\Uzer\Desktop\RemoveDirtSSE2.dll")
    A=Last
    prev = A.selectevery(1,-1)
    next = A.selectevery(1,1)
    SCclean = A.SCSelect(next,prev,A,dfactor=2.0) # 2.0 ~ 5.0
    
    FixBadFrames(SCclean)
    Can u please correct me here i couldn't get it work invalid argument i guess i m not typing it correctly.thx again
    Quote Quote  
  8. As explained in the AVS itself, you use it like so:

    FFB1(1000) or

    FFA1(1000)


    B1 interpolates frame 1000 before the scene change, A1 after. If you use FreezeFrameMC, don't use the other one.
    Quote Quote  
  9. Overall, those aren't that bad, you usually won't notice them at a scene change

    Some other ideas:

    You actually have an cleaner unblended solve if you take from the other field for some of them (the prior frame before scene change on in all 3 examples. )

    Basically replace the "bad" frames from an un-srestored version of QTGMC (so it hasn't been decimated and contains all the fields as frames). And at the very least, it's a better starting point if you want to fix it up a bit in photoshop later.

    For example

    11 => 25

    12 => not bad, artifacts in tree that can easily be patched/copied over derived from next frame (eg. photoshop / ae) , if you're picky you can fix the wall in the same way too

    587 => 1406

    588 => not bad , you can replace the wall from taking from next frame, bits of the hair, some general photoshop

    776 => 1859

    777 => replace wall/background from next frame/masking out, smooth out uniform, and adjust levels slightly
    Quote Quote  
  10. Originally Posted by poisondeathray View Post
    Overall, those aren't that bad, you usually won't notice them at a scene change

    Some other ideas:

    You actually have an cleaner unblended solve if you take from the other field for some of them (the prior frame before scene change on in all 3 examples. )

    Basically replace the "bad" frames from an un-srestored version of QTGMC (so it hasn't been decimated and contains all the fields as frames). And at the very least, it's a better starting point if you want to fix it up a bit in photoshop later.

    For example

    11 => 25

    12 => not bad, artifacts in tree that can easily be patched/copied over derived from next frame (eg. photoshop / ae) , if you're picky you can fix the wall in the same way too

    587 => 1406

    588 => not bad , you can replace the wall from taking from next frame, bits of the hair, some general photoshop

    776 => 1859

    777 => replace wall/background from next frame/masking out, smooth out uniform, and adjust levels slightly
    hi , sorry foe delay i was away on work all day .
    now the results are better since manono posted a solution which fix the problem quite nicely that i was having with video so i'm quite happy with it.

    Originally Posted by manono View Post
    I think Sendspace turned to crap recently:

    "Note your download is limited to a max of 80KB/s"

    You have a field-blended source. You always will keep blends on either side of scene changes. That's the price you pay by working with the worst DVDs in the world - the ones from Indian media companies. However, with just:

    QTGMC()
    SRestore()

    I'm seeing barely noticeable problems at scene changes

    If you're willing to go through and fix them manually (I do), I have a function that does an outstanding job. Just ask. If you want them fixed automatically, this one will Freezeframe all scene changes on both sides of the scene change, something you might not want:

    A=Last
    prev = A.selectevery(1,-1)
    next = A.selectevery(1,1)
    SCclean = A.SCSelect(next,prev,A,dfactor=2.0) # 2.0 ~ 5.0

    return(SCclean) # return(restore) for NO scenechange cleanup

    It needs the RemoveDirt.dll. And if you set the dfactor too high, you're liable to get freezeframes at places other than scene changes.
    now the next thing i was trying the function has been posted by manono
    Originally Posted by manono View Post
    As explained in the AVS itself, you use it like so:

    FFB1(1000) or

    FFA1(1000)


    B1 interpolates frame 1000 before the scene change, A1 after. If you use FreezeFrameMC, don't use the other one.
    i am not able to fit this in my script (i mean cant order the function in a way like sir manono did on 1st solution) ,
    here is my script
    Code:
    # Set DAR in encoder to 569 : 240. The following line is for automatic signalling
    global MeGUI_darx = 569
    global MeGUI_dary = 240
    Setmemorymax(1024)
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\dgindex\DGDecode.dll")
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\avisynth_plugin\ColorMatrix.dll")
    
    DGDecode_mpeg2source("C:\Users\Uzer\Videos\VID-CRP-AR\VTS_0ACR.d2v", cpu=4, info=3)
    
    ColorMatrix(hints=true, threads=0)
    
    QTGMC()
    
    SRestore()
    
    A=last
    
    A.FFB1(1000)
    
    A.FFA1(1000)
    i type it like this , but problem still there in my video think i am missing there something or not doing it correctly , Can you please correct my script ?
    Thank you both of you poisondeathray and manono
    Quote Quote  
  11. Just enter the frame number for the "bad" frame. For example, 11 and 12 were "bad" in srestore'd frame numbers. Since 11 was before, you use FFB1(11), since 12 was after you use FFB1(12)

    Code:
    DGDecode_mpeg2source("C:\Users\Uzer\Videos\VID-CRP-AR\VTS_0ACR.d2v", cpu=4, info=3)
    
    ColorMatrix(hints=true, threads=0)
    
    QTGMC()
    
    SRestore()
    
    FFB1(11)
    FFA1(12)
    .
    .
    .
    You would continue doing that for each scene change that needed to be replaced


    But I have a feeling it won't be acceptable for you, or at least not alone, because

    1) it changes the original frame timing; if you're replacing 2 frames in the scene change, actually the next one is also replaced but their timing is slightly different than the original (their movements will be slightly different) . So a total of 4 frames instead of 2 are "changed". Thus, a previously "good" frame can be made worse

    2) it's not always "clean", it can introduce blends and other artifacts . Sometimes it might work great, other times fail miserably, or anything in between

    So you might mix & match some techniques
    Quote Quote  
  12. Originally Posted by poisondeathray View Post
    Just enter the frame number for the "bad" frame. For example, 11 and 12 were "bad" in srestore'd frame numbers. Since 11 was before, you use FFB1(11), since 12 was after you use FFB1(12)

    Code:
    DGDecode_mpeg2source("C:\Users\Uzer\Videos\VID-CRP-AR\VTS_0ACR.d2v", cpu=4, info=3)
    
    ColorMatrix(hints=true, threads=0)
    
    QTGMC()
    
    SRestore()
    
    FFB1(11)
    FFA1(12)
    .
    .
    .
    You would continue doing that for each scene change that needed to be replaced


    But I have a feeling it won't be acceptable for you, or at least not alone, because

    1) it changes the original frame timing; if you're replacing 2 frames in the scene change, actually the next one is also replaced but their timing is slightly different than the original (their movements will be slightly different) . So a total of 4 frames instead of 2 are "changed". Thus, a previously "good" frame can be made worse

    2) it's not always "clean", it can introduce blends and other artifacts . Sometimes it might work great, other times fail miserably, or anything in between

    So you might mix & match some techniques
    Code:
    # Set DAR in encoder to 569 : 240. The following line is for automatic signalling
    global MeGUI_darx = 569
    global MeGUI_dary = 240
    Setmemorymax(1024)
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\dgindex\DGDecode.dll")
    LoadPlugin("C:\Program Files (x86)\MeGui_2715_x86\tools\avisynth_plugin\ColorMatrix.dll")
    
    DGDecode_mpeg2source("C:\Users\Uzer\Videos\VID-CRP-AR\VTS_0ACR.d2v", cpu=4, info=3)
    
    ColorMatrix(hints=true, threads=0)
    
    QTGMC()
    
    SRestore()
    
    FFB1(11   ) FFA1(12  )
    FFB1(428  ) FFA1(429 )
    FFB1(587  ) FFA1(588 )
    FFB1(722  ) FFA1(723 )
    FFB1(776  ) FFA1(777 )
    FFB1(828  ) FFA1(829 )
    FFB1(861  ) FFA1(862 )
    FFB1(1128 ) FFA1(1129)
    thank you poisondeathray for explaining the function order , i think i have got it right but please let me know if i misunderstood it ( i think like this i have go threw the whole dvd from start to end (1st to last frame)) and where scene change i have to type the frame number before and after like i did on sample with above script , thanks manono for this nice script FreezeFrameMC i really liked the Function +1
    Quote Quote  
  13. Originally Posted by poisondeathray View Post

    1) it changes the original frame timing;
    If you're saying the movement slows slightly then, yes. And so what? It's at a scene change for one thing, and not noticeable unless you're looking for it. And it's way less noticeable than are blended scene changes, or freeze frames, although FFB2 and FFB3 do introduce freezeframes, and a helluva lot more easily than writing out the entire freezeframe parameters. I'm quite pleased with it. I should say that I took the idea to jagabo and he got me started with it, since I'd never written an AviSynth function before, and I'll be forever grateful to him.
    2) it's not always "clean", it can introduce blends and other artifacts .
    It doesn't introduce blends. It might continue a blend if the previous frame is blended (the one 2 frames before or 2 frames after the scene change), which rarely happens. At the worst there might very be slight and not noticeable artifacting. The reason is the frame being interpolated is half the movement of the original video frame. I'm not sure if that makes sense or not, but maybe 95% of my projects are field-blended (Indian films, like BÌG•bµdd) and I use this several hundred times with each film project (each of which takes 2-3 weeks).
    Last edited by manono; 7th Oct 2017 at 01:11.
    Quote Quote  
  14. Originally Posted by manono View Post
    1) it changes the original frame timing;
    If you're saying the movement slows slightly then, yes. And so what? It's at a scene change for one thing, and not noticeable unless you're looking for it.
    Yes, the movement is different. 4 frames are changed in terms of motion per scene change. Sure it's hardly noticeable, but how "bad" was his case to begin with after srestore? Was that "noticable" ? To some people yes, to others , no. Maybe if you were looking for it

    2) it's not always "clean", it can introduce blends and other artifacts .
    It doesn't introduce blends. It might continue a blend if the previous frame is blended (the one 2 frames before or 2 frames after the scene change), which rarely happens. At the worst there might very be slight and not noticeable artifacting. The reason is the frame being interpolated is half the movement of the original video frame. I'm not sure if that makes sense or not, but maybe 95% of my projects are field-blended (Indian films, like BÌG•bµdd) and I use this several hundred times with each film project (each of which takes 2-3 weeks).
    Yes it can introduce "blends", and also edge warping motion interpolation artifacts. Sometimes it works perfectly.... But sometimes it doesn't .

    Also, if he was going this route, I would definitely be more selective. I noticed some frames were listed that didn't need to be. eg. 427,428 ? They don't look "bad" to me




    Yes, this is a definitely good option, but I would argue this "problem" wasn't even that bad to begin with. If you're in the "camp" that notices these sorts problems in the first place, then there is a higher probability that you'd also notice the change in timing and possibly the additional artifacts that are generated on some frames.
    Quote Quote  
  15. I'm not going to argue with you, not as knowledgeable and as helpful and as cheerful as you always are. And just to use it one has to be willing to go through a video frame-by-frame to find the problems and that removes 95% of the video restoration people, I would guess. Me, I have an infinite amount of patience, go through all film projects three separate times and average maybe 40 hours of very labor intensive work per film project.

    But I've used this FreezeFrameMC (together with the frame interpolator included as part of it) several thousand times, I would guess, and have never seen blended frames resulting from using it, and I rarely see artifacted frames.

    Yes, this is a definitely good option, but I would argue this "problem" wasn't even that bad to begin with.
    I think he mentioned he didn't pick out the best sample for illustrating the problem. I don't fix them all either. But with a field-blended source there are always heavily blended scene changes that jump out at you after being unblended with SRestore.
    Quote Quote  
  16. I was actually talking about even more patience Most of them you can fix almost perfectly in AE/ photoshop by borrowing from other frames / rough masks. But nothing seriously time consuming or major manual work.

    If you brighten/enhance the picture, maybe raise gamma - some problems are more clearly visible . eg. Earlier when I said 427, 428 weren't that bad - To be more specific 427 is ok, but 428 has some texture loss , you just copy/offset parts from other frames. At least in the example he provided, this is almost "ideal" situation for AE/photoshop treatment, compared to other "bad" sources
    Quote Quote  



Similar Threads

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