VideoHelp Forum
+ Reply to Thread
Results 1 to 9 of 9
Thread
  1. Hi,
    I'd like to know which category of software would be able to correct a video recorded from TV which now and then has bad interferences in it, mainly showing bigger pixels in some sequences which then dissapear.
    I have the impression that smaller video editors like AVS Video Editor, VirtaulDub with its numerous filters etc. all do have features for video effects doing the most basic things like color, intensity or saturation corrections, manual frame manipulations, and some of them allow a serie of frames to be exported as images for fine-editing, but in my case such manual procedures are hopeless, it would take too much time to make it worthwhile. Such simple features are rather 'kidding games' when compared to a good solution, I think.
    What I'm looking for is a software that is able to:

    - automatically find the range of frames that would show such faulty intervals as described above
    - have features to correct them quickly

    Preferably a software not costing in the hundreds...
    Is this in the realm of motion tracking and related features, or is the solution even simplier when applying gaussian bluring or some simple filters?

    Thanks to feedback,
    XenonS
    Quote Quote  
  2. Basically, you can't fix reception errors like that automagically. The best you can do is recreate the frames using parts of other frames. But even that isn't possible for anything other than simple linear motions and panning shots. For those you can try using ReplaceFramesMC() (aka RX()) in AviSynth. The longer the sequence replaced the less likely that will work well.

    https://forum.videohelp.com/threads/352741-Frame-interpolation?p=2226119&viewfull=1#post2226119
    Quote Quote  
  3. Hi jagabo, thanks for your link.
    In my case, I think I'm lucky because these 'faulty interferences' that translate in big pixels are very short in the timeline, sometimes a single frame, and not with a large amount of motion within the video (persons speaking with still background panorama etc.). So what about a procedure that just cuts this (these) frame(s) and copy the previous or comming frames in their exact places? Would this impact the audio and the whole video not being in synch anymore?

    Has any free program this possibility without building a complicated script, I'm highly incomfortable to do it with AviSynth (but I will if not avoidable).

    Thanks for any users of VirtualDub, AVS Video Editor, MP4Box, ffmpeg, or else to tell me if i can cut and replace 1 single frame (instead of a timeline selection) or doing such a replacement with a serie of frames, maybe with command lines and a batch file.
    I'll look in VirtualDub for an appropriate filter and will feedback here in case of success.

    Thanks,
    XenonS
    Last edited by XenonS; 24th Oct 2015 at 13:37.
    Quote Quote  
  4. if there isn't much motion you can try the badframes plugin for avisynth:
    http://avisynth.org.ru/badframes/badframes.html
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  5. Replacing individual frames in AviSynth is easy. I wrote a function that replace a frame with the one before it and another that replaces a frame with the one after it:

    Code:
    ######################################################
    
    function ReplaceFramePrev(clip Source, int N)
    {
      # Replace frame at N with frame at N-1
      # N is the frame to replace
      # with frame at N-1
    
      loop(Source, 0, N, N)
      loop(last, 2, N-1, N-1)
    }
    ######################################################
    
    function ReplaceFrameNext(clip Source, int N)
    {
      # Replace frame at N with frame at N+1
      # N is the frame to replace
      # with frame at N+1
    
      loop(Source, 0, N, N)
      loop(last, 2, N, N)
    }
    
    ######################################################
    For example, to replace frame 1000 with a copy of frame 999:

    Code:
    ReplaceFramePrev(1000)
    or to replace frames 1000 and 1001 with copies of frame 999:

    Code:
    ReplaceFramePrev(1000) # copy frame 999 to 1000
    ReplaceFramePrev(1001) # copy frame 1000 (already a copy of frame 999) to frame 1001
    or to replace frames 1000 and 1001 with copies of frame 1002:

    Code:
    ReplaceFrameNext(1001)
    ReplaceFrameNext(1000)
    or to replace frame 1000 with frame 999, and frame 1001 with frame 1002:

    Code:
    ReplaceFramePrev(1000)
    ReplaceFrameNext(1001)
    In VirtualDub you can use copy/delete/paste operations to replace a frame a copy of another. So to replace frame 1000 with a copy of frame 999:

    1) go to frame 999
    2) mark in
    3) go to frame 1000
    4) mark out
    5) Edit -> Copy (copy frame 999 to the clipboard)
    6) Edit -> Clear Selection
    7) (already at frame 1000) mark in
    8) go to frame 1001
    9) mark out
    10) Edit -> Delete
    11) Edit -> Paste (paste -insert- frame 999 from the clipboard to here)
    Quote Quote  
  6. Thanks very much for your time, Jagabo
    I will start working with your VirtualDub scenario.
    I found that I can also do it in VSDC Free Video Editor, but inserting an image which is a snapshot of the last frame can only be drawed for a mininmum of >40 milliseconds or 2 frames. And I have to re-encode of course.
    The VD route and your AviSynth script is for sure better.

    Greets,
    XenonS
    Last edited by XenonS; 24th Oct 2015 at 21:48.
    Quote Quote  
  7. Unless your video is all keyframes you'll have to re-encode with whatever program you use.
    Quote Quote  
  8. Do you still need VirtualDubMod to run Avisynth scripts, or can you do it with the latest VirtualDub 1.10.4? If yes you need however to have your files in AVI format, right?
    If I create an avs file with "avisource(...)", I can open in VirtualDub, but any additional codes (like yours above) will not be accepted by VirtualDub, also I have found no script editor inside VD.

    Your pure VD method above works well, I quickly got the feel by using key shortcuts, so this can all be done quickly. I just set a time intervall to process the video, so I can save the work if I want to interupt.

    XenonS
    Last edited by XenonS; 25th Oct 2015 at 13:04.
    Quote Quote  
  9. VirtualDub can read AviSynth scripts.

    Include the text of my ReplaceFrameNext and ReplaceFramePrev functions in the script. They will then be available to the script. You can call them after the source filter. VirtualDub has no idea what's going on in the script. It just gets a stream of video frames.
    Quote Quote  



Similar Threads

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