VideoHelp Forum

Try DVDFab and download streaming video, copy, convert or make Blu-rays,DVDs! Download free trial !
+ Reply to Thread
Results 1 to 22 of 22
Thread
  1. Hey Everyone,

    I've been converting my old childhood vhs-c tapes. I decided to purchase the ClearClick 2.0 and I was able to successfully convert the first 40-50 tapes with no issues. The video quality was good and I was off to the races (I have 200+ tapes). But in the last day the past 5-10 videos I've tried converting all have jerky, static like issues throughout the video. None of my other tapes had that issue. I have three VCR's on hand and two different VHS-C converter tapes and I've swapped everything out but the converter wires. I'm actually doing it from oldest to newest tapes, so I'm fairly certain this is some sort of issue on my end as it makes no sense that a tape from 1988 is working better than a one from 2003. Anyways, wanted to see if anyone has any thoughts or suggestions.
    Quote Quote  
  2. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    Post a 10 -15 second sample of your capture that shows the problem
    Quote Quote  
  3. And go back to one of the tapes you captured successfully before and see if you can still capture it properly.
    Quote Quote  
  4. Originally Posted by davexnet View Post
    Post a 10 -15 second sample of your capture that shows the problem
    Here's a ten second clip. As you can see the video just jumps and zig zags. I've noticed it to be more frequent on any videos I try to copy even though I did not change anything from when I successfully copied 50 others.

    https://www.youtube.com/watch?v=4gG0KWJbALY
    Quote Quote  
  5. The video is periodically jumping back 5 frames for one frame, then back forward. But a youtube re-encoded video isn't very helpful. You can upload a short clip to this site without any reencoding.
    Quote Quote  
  6. Originally Posted by jagabo View Post
    The video is periodically jumping back 5 frames for one frame, then back forward. But a youtube re-encoded video isn't very helpful. You can upload a short clip to this site without any reencoding.
    Sorry for the delay. Work was getting busy and I had to push this off for a day. Attached is an example video unedited. Just taken straight from the recorder.
    Image Attached Files
    Quote Quote  
  7. The faults are very consistent -- it looks like it's always a frame from 5 frames earlier is replacing an otherwise missing frame. I didn't see anything wrong with the encoding. The problem is probably a bad reaction to time base irregularities. A line TB or full frame TBC may take care of it.

    But here's an AviSynth script that replaces the jump-back frames with a duplicate of the previous frame (with only a few false positives). That leaves it a little jerky but much better than the original.

    Code:
    src = LSmashVideoSource("Example Video.mp4") 
    prev = src.Loop(2,0,0)
    earlier = src.Loop(6,0,0)
    
    diff = Subtract(src, earlier).ColorYUV(off_y=2)
    diff = Overlay(diff.ColorYUV(off_y=-128), diff.Invert().ColorYUV(off_y=-127), mode="add")
    
    ConditionalFilter(diff, prev, src, "AverageLuma()", "lessthan", "4")
    Sample attached.

    It's also possible to replace the jump-back frames with motion interpolated frames. That's smoother but some of the interpolated frames will show distortions.
    Image Attached Files
    Last edited by jagabo; 7th May 2020 at 20:27.
    Quote Quote  
  8. Originally Posted by Wich23 View Post
    it makes no sense that a tape from 1988 is working better than a one from 2003.
    By the way, that's not necessarily true. Storage conditions, the condition of the recording device, the alignment of the recording device and the playback device -- so many things can make a difference.
    Quote Quote  
  9. Originally Posted by jagabo View Post
    The faults are very consistent -- it looks like it's always a frame from 5 frames earlier is replacing an otherwise missing frame. I didn't see anything wrong with the encoding. The problem is probably a bad reaction to time base irregularities. A line TB or full frame TBC may take care of it.

    But here's an AviSynth script that replaces the jump-back frames with a duplicate of the previous frame (with only a few false positives). That leaves it a little jerky but much better than the original.

    Code:
    src = LSmashVideoSource("Example Video.mp4") 
    prev = src.Loop(2,0,0)
    earlier = src.Loop(6,0,0)
    
    diff = Subtract(src, earlier).ColorYUV(off_y=2)
    diff = Overlay(diff.ColorYUV(off_y=-128), diff.Invert().ColorYUV(off_y=-127), mode="add")
    
    ConditionalFilter(diff, prev, src, "AverageLuma()", "lessthan", "4")
    Sample attached.

    It's also possible to replace the jump-back frames with motion interpolated frames. That's smoother but some of the interpolated frames will show distortions.

    I appreciate the help. That does look better. How did you implement the script into the video? I'm pretty new to this and thought transferring over videos would be very simple (but obviously it's not if you run into issues like this). Is there an online guide on how to put that script into effect? I have some very minor coding knowledge.
    Quote Quote  
  10. Install AviSynth+ and an editor/encoder that works with AviSynth script (VirtualDub2, x264 CLI, etc.). Be sure both are the same bitness (32 bit or 64 bit). The script uses one 3rd part filter that doesn't come with Avisynth, L-SMASH-Works. Download the package from here:

    http://avisynth.nl/index.php/LSMASHSource

    Extract LSMASHSource.dll and put it into AviSynth's plugins folder. Be sure to use the version of the same bitness as AviSynth+ and VirtualDub2.

    Copy/Paste the text of the script in post #7 into NotePad (or any other plain text editor). Save it in the same place as as "Example Video.mp4", being sure to set the extension to .AVS, not .TXT. Start VirtualDub2 and drag drop the .AVS script onto it. Or use VirtualDub2's File -> Open Video File to open the .AVS script. Proceed as you would with any video. Scrub the the video to make sure the script is working. Select video and audio codecs, then Save the result.

    Attached is a version that uses motion interpolation to replace the bad frames. It's smoother than the earlier version but show as few distortions where the motion interpolation screwed up. I can give you the script for that if you're interested.
    Image Attached Files
    Quote Quote  
  11. Originally Posted by jagabo View Post
    Install AviSynth+ and an editor/encoder that works with AviSynth script (VirtualDub2, x264 CLI, etc.). Be sure both are the same bitness (32 bit or 64 bit). The script uses one 3rd part filter that doesn't come with Avisynth, L-SMASH-Works. Download the package from here:

    http://avisynth.nl/index.php/LSMASHSource

    Extract LSMASHSource.dll and put it into AviSynth's plugins folder. Be sure to use the version of the same bitness as AviSynth+ and VirtualDub2.

    Copy/Paste the text of the script in post #7 into NotePad (or any other plain text editor). Save it in the same place as as "Example Video.mp4", being sure to set the extension to .AVS, not .TXT. Start VirtualDub2 and drag drop the .AVS script onto it. Or use VirtualDub2's File -> Open Video File to open the .AVS script. Proceed as you would with any video. Scrub the the video to make sure the script is working. Select video and audio codecs, then Save the result.

    Attached is a version that uses motion interpolation to replace the bad frames. It's smoother than the earlier version but show as few distortions where the motion interpolation screwed up. I can give you the script for that if you're interested.
    That looks even better! Yeah send me the script for that one as well. I'll play around with it tonight and see if I have any success on my end. Thanks a bunch. I'm running into videos from a certain time period having this issue - I'm wondering if the camera was getting old and didn't write onto the tapes as clearly as when it was new. I'm definitely confused by it because some tapes are perfect, others are not. They were all stored the same.
    Quote Quote  
  12. I recommend you start with the simpler script. But here's the script that uses motion interpolation:

    Code:
    ##########################################################################
    #
    # replace every frame with a motion interpolated frame.  Motion is
    # interpolated between the frame before and the frame after.
    #
    ##########################################################################
    
    function InterpolateAll(clip c)
    {
        e = SelectEven(c).InterFrame(cores=4).SelectOdd()
        o = SelectOdd(c).InterFrame(cores=4).SelectOdd()
        Interleave(e,o)
        Loop(2,0,0)
    }
    
    
    ##########################################################################
    #
    # Replace selected frame(s) with a motion interpolated frame.
    # Motion is interpolated between the frame before N and the
    # framee after N+X.
    #
    ##########################################################################
    
    function ReplaceFramesMC(clip Source, int N, int "X")
    {
     # N is number of the 1st frame in Source that needs replacing. 
     # X is total number of frames to replace
     #e.g. RX(101, 5) would replace 101,102,103,104,105 , by using 100 and 106 as reference points for mflowfps interpolation
     
     X = Default(X, 1)
    
     start=Source.trim(N-1,-1) #one good frame before, used for interpolation reference point
     end=Source.trim(N+X,-1) #one good frame after, used for interpolation reference point
     
     start+end
     AssumeFPS(1) #temporarily FPS=1 to use mflowfps
      
     super = MSuper(pel=2, hpad=0, vpad=0, rfilter=4)
     backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
     forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
     backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
     forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
     backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
     forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
     MBlockFps(super, backward_3, forward_3, num=X+1, den=1, mode=0)
    
     AssumeFPS(FrameRate(Source)) #return back to normal source framerate for joining
     Trim(1, framecount-1) #trim ends, leaving replacement frames
      
     Source.trim(0,-N) ++ last ++ Source.trim(N+X+1,0)
    }
    
    
    ##########################################################################
    
    src = LSmashVideoSource("C:\Users\John\Downloads\Example Video.mp4") 
    interp = src.InterpolateAll()#.Subtitle("interpolated")
    prev = src.Loop(2,0,0)
    earlier = src.Loop(6,0,0)
    
    diff = Subtract(src, earlier).ColorYUV(off_y=2)
    diff = Overlay(diff.ColorYUV(off_y=-128), diff.Invert().ColorYUV(off_y=-127), mode="add")
    
    ConditionalFilter(diff, interp, src, "AverageLuma()", "lessthan", "4")
    
    # manually select frames for replacement (overwriting bad frames)
    ReplaceFramesMC(294,4)
    ReplaceFramesMC(299)
    ReplaceFramesMC(301)
    You will need the mvtools2 package for this. http://avisynth.nl/index.php/MVTools
    Quote Quote  
  13. Originally Posted by jagabo View Post
    Install AviSynth+ and an editor/encoder that works with AviSynth script (VirtualDub2, x264 CLI, etc.). Be sure both are the same bitness (32 bit or 64 bit). The script uses one 3rd part filter that doesn't come with Avisynth, L-SMASH-Works. Download the package from here:

    http://avisynth.nl/index.php/LSMASHSource

    Extract LSMASHSource.dll and put it into AviSynth's plugins folder. Be sure to use the version of the same bitness as AviSynth+ and VirtualDub2.

    Copy/Paste the text of the script in post #7 into NotePad (or any other plain text editor). Save it in the same place as as "Example Video.mp4", being sure to set the extension to .AVS, not .TXT. Start VirtualDub2 and drag drop the .AVS script onto it. Or use VirtualDub2's File -> Open Video File to open the .AVS script. Proceed as you would with any video. Scrub the the video to make sure the script is working. Select video and audio codecs, then Save the result.

    Attached is a version that uses motion interpolation to replace the bad frames. It's smoother than the earlier version but show as few distortions where the motion interpolation screwed up. I can give you the script for that if you're interested.
    I'm probably doing something very minor wrong, but when I try to upload the script I'm getting the following error (see attached). I believe I have everything downloaded correctly, and LSMASHSource.dll was put into AviSynths plugin folder. I used the "Example Video" to test as I'm assuming you change that text depending on the videos actual name (once I have it all figured out).
    Image Attached Thumbnails Click image for larger version

Name:	Error Pic.PNG
Views:	18
Size:	43.7 KB
ID:	53274  

    Quote Quote  
  14. Maybe you put the wrong (32 bit vs 64 bit) LSMASHSource.dll file in AviSynth's plugins folder? If you're using AviSynth+ be sure to put the 32 bit version in the plugins+ folder, the 64 bit version in the plugins64+ folder.
    Quote Quote  
  15. Originally Posted by jagabo View Post
    Maybe you put the wrong (32 bit vs 64 bit) LSMASHSource.dll file in AviSynth's plugins folder? If you're using AviSynth+ be sure to put the 32 bit version in the plugins+ folder, the 64 bit version in the plugins64+ folder.

    That's what it was. Everything seems to be working well now. Currently dubing. Going to see how it turns out and then try the other script. Anything special I need to do with the more complicated script?
    Quote Quote  
  16. Originally Posted by jagabo View Post
    Maybe you put the wrong (32 bit vs 64 bit) LSMASHSource.dll file in AviSynth's plugins folder? If you're using AviSynth+ be sure to put the 32 bit version in the plugins+ folder, the 64 bit version in the plugins64+ folder.
    The first script worked. It didn't seem to improve the video quality that much though. When I load the script and play it, do I just play it all the way through or do I have to do anything else in order to get it to convert? I also have yet to figure out how to transfer the sound (or do I just mix it on another program later?). I apologize for all the questions I'm literally like a blind man in a maze right now but I'm slowly figuring it out.

    Tried putting together the second script but ran into an error. Figured I did not put a file in the right spot since you said it was more complicated. Hoping once I try that script it has better results.
    Quote Quote  
  17. As I said before, once you've successfully opened the script it's the same as editing any video. You have to select a video codec and save as a new file.

    I usually mux the original audio with the new video in a case like this. You can import the original audio with VirtualDub2's Audio -> Audio From Another File. If you want to reencode the audio for some reason you can import it along with the video in the AviSynth script. Replace:

    Code:
    src = LSmashVideoSource("Example Video.mp4")
    with:

    Code:
    a = LSmashAudioSource("Example Video.mp4")
    v = LSmashVideoSource("Example Video.mp4")
    src = AudioDub(v,a)
    Quote Quote  
  18. Originally Posted by jagabo View Post
    As I said before, once you've successfully opened the script it's the same as editing any video. You have to select a video codec and save as a new file.

    I usually mux the original audio with the new video in a case like this. You can import the original audio with VirtualDub2's Audio -> Audio From Another File. If you want to reencode the audio for some reason you can import it along with the video in the AviSynth script. Replace:

    Code:
    src = LSmashVideoSource("Example Video.mp4")
    with:

    Code:
    a = LSmashAudioSource("Example Video.mp4")
    v = LSmashVideoSource("Example Video.mp4")
    src = AudioDub(v,a)

    OK got it. Going to mess around with it some more tonight and tomorrow. I just need to get more accustom to the program. The only video editing I've ever done is Power Director. For the 2nd script you sent me is there anything special I need to do to make that one work? That one seemed to give the best results of the two examples you tried out for me.
    Quote Quote  
  19. Also, is there a way to thank people in this forum? Couldn't find a way to thumbs up someone, or give them a thanks. I owe about 6 already.
    Quote Quote  
  20. Originally Posted by Wich23 View Post
    For the 2nd script you sent me is there anything special I need to do to make that one work? That one seemed to give the best results of the two examples you tried out for me.
    I believe the one thing I mentioned, mvtools2, is the only additional filter you'll need.
    Quote Quote  
  21. Originally Posted by jagabo View Post
    Originally Posted by Wich23 View Post
    For the 2nd script you sent me is there anything special I need to do to make that one work? That one seemed to give the best results of the two examples you tried out for me.
    I believe the one thing I mentioned, mvtools2, is the only additional filter you'll need.

    Do I have to plug it in to the plugins list? That's the only thing I'm wondering. I tried downloading it and setting it up and I just got an error. So I figured I had to drag one of the files into the plugin folder just wasn't sure which one.
    Quote Quote  
  22. As with LSMASH be sure you get the right bitness and put it in the right folder. Put the three dlls in the correct plugins folder.
    Quote Quote  



Similar Threads