VideoHelp Forum
+ Reply to Thread
Results 1 to 14 of 14
Thread
  1. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Hi,

    I have this video file that plays choppy on my standalone
    DVD player (as well as on the PC).

    The stuttering frame(s) seem to occur in very precise intervals,
    like every 2 seconds.

    Is there a way to fix this, most preferrably without reencoding the video?

    Thanks in advance.

    Quote Quote  
  2. I'm a MEGA Super Moderator Baldrick's Avatar
    Join Date
    Aug 2000
    Location
    Sweden
    Search Comp PM
    If it also stutters on your pc I don't think you can't do much. But have you tried any avi repair tools like divfixpp? Or try reconvert using avirecomp as a last solution.
    Quote Quote  
  3. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Originally Posted by Baldrick
    If it also stutters on your pc I don't think you can't do much. But have you tried any avi repair tools like divfixpp? Or try reconvert using avirecomp as a last solution.
    I tried both apps and none of them worked ...

    Is it really that hard to fix?

    Couldn't be a matter of removing duplicate frames? just guessing, I'm a newbie ..

    Thanks again.
    Quote Quote  
  4. Originally Posted by dexter30
    Is it really that hard to fix?
    Yes. If it's completely regular you could use AviSynth's SelectEvery().
    Quote Quote  
  5. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Isnīt there a tool to remove duplicate frames automatically?
    Quote Quote  
  6. How do you expect the program to know which frames are duplicates because of an encoding error and which are duplicates because of a still shot?
    Quote Quote  
  7. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Originally Posted by jagabo
    How do you expect the program to know which frames are duplicates because of an encoding error and which are duplicates because of a still shot?
    Duplicate frames precisely every "X" seconds are obviously not result of still shots.
    Quote Quote  
  8. Originally Posted by dexter30
    Originally Posted by jagabo
    How do you expect the program to know which frames are duplicates because of an encoding error and which are duplicates because of a still shot?
    Duplicate frames precisely every "X" seconds are obviously not result of still shots.
    Are you sure they are precisely every "X" seconds? And I've already covered that case with SelectEvery().

    Post a few minutes of your video and I'll take a look at it. But I'm not aware of any software that will automatically figure out how many frames are duplicated and at what interval and remove them. And certainly not without reencoding.
    Quote Quote  
  9. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Originally Posted by jagabo
    Originally Posted by dexter30
    Originally Posted by jagabo
    How do you expect the program to know which frames are duplicates because of an encoding error and which are duplicates because of a still shot?
    Duplicate frames precisely every "X" seconds are obviously not result of still shots.
    Are you sure they are precisely every "X" seconds? And I've already covered that case with SelectEvery().

    Post a few minutes of your video and I'll take a look at it. But I'm not aware of any software that will automatically figure out how many frames are duplicated and at what interval and remove them. And certainly not without reencoding.
    What about WITH reencoding? I wouldnīt mind loosing a bit of quality if I could get rid of that stuttering.
    Quote Quote  
  10. I'm not aware of any software that is designed specifically to remove N duplicate frames from a specific location within a group of M frames. This is not a common problem.

    AviSynth has a TDecimate() function that can remove N frame from a group of M and it preferentially removes duplicate frames. But it will remove duplicates in still shots as well as the erroneous duplicates.

    If the pattern is completely regular, say, out of every string of 20 frames the last 5 are duplicates, and this pattern repeats over and over again, exactly, you can use AviSynth's SelectEvery() function: SelectEvery(20, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14).

    I suspect the only solution you will find is to use an editor to manually locate and delete the duplicates. Then reencode the video.

    Open your video with VirtualDub and step through frames one by one to verify that there are groups of duplicates as we are surmising, and not that this is some kind of playback problem.
    Quote Quote  
  11. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Originally Posted by jagabo
    I'm not aware of any software that is designed specifically to remove N duplicate frames from a specific location within a group of M frames. This is not a common problem.

    AviSynth has a TDecimate() function that can remove N frame from a group of M and it preferentially removes duplicate frames. But it will remove duplicates in still shots as well as the erroneous duplicates.

    If the pattern is completely regular, say, out of every string of 20 frames the last 5 are duplicates, and this pattern repeats over and over again, exactly, you can use AviSynth's SelectEvery() function: SelectEvery(20, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14).

    I suspect the only solution you will find is to use an editor to manually locate and delete the duplicates. Then reencode the video.

    Open your video with VirtualDub and step through frames one by one to verify that there are groups of duplicates as we are surmising, and not that this is some kind of playback problem.
    Jagabo,

    I discovered that 1 duplicate frame occur exactly every 24 frames.

    Please, take a look at the attached sample file and see if the AviSynth funcions you mentioned would work.

    Also I donīt know how to use it, I will be grateful if you help me.

    Thanks again.

    test.avi
    Quote Quote  
  12. It isn't as simple as every 24th frame. Here's a list of the duplicate frames (as numbered by VirtualDub, followed by the count to the next duplicate in parenthesis):

    48 (25)
    73 (24)
    97 (25)
    122 (24)
    146 (24)
    170 (25)
    195 (24)
    219 (25)
    244 (24)
    268 (24)
    292

    There isn't quite enough here to say exactly, but the pattern appears to be 25, 24, 25, 24, 24. That would mean there are 5 duplicates in every 122 frames. The source file is 25.00 fps. Removing the duplicates would change it to 23.975 fps (25 * 117 / 122). That is close enough to 23.976 fps to assume that somebody converted a 23.976 fps NTSC video to 25 fps PAL by duplicating frames. Actually, just seeing that every ~24 frames there is a duplicate is enough to assume this but I wanted to do a slightly more in depth analysis.

    There are a lot of programs that can convert from 25 fps to 23.976 fps, but most of them will remove arbitrary frames (typically a fixed pattern of every 25th frame), not necessarily duplicates. Using AviSynth's TDecimate() function, which preferentially removes duplicates, I converted the rate to 23.976 and the result was pretty good.

    AVISource("C:\Documents and Settings\John\Desktop\test.avi")
    TDecimate(mode=7, rate=23.976)

    23.976.avi

    You might try TDecimate(mode=2, rate=23.976, maxndl=25) instead.

    Note that this short clip had motion in all frames except for the slow fade-in at the start. I would expect more problems (occasional duplicates and skipped frames) with a longer video of mixed still/motion shots.
    Quote Quote  
  13. Member
    Join Date
    Feb 2008
    Location
    Brazil
    Search Comp PM
    Originally Posted by jagabo
    AVISource("C:\Documents and Settings\John\Desktop\test.avi")
    TDecimate(mode=7, rate=23.976)

    You might try TDecimate(mode=2, rate=23.976, maxndl=25) instead.
    I tried it with the whole file and the results were good.
    TDecimate(mode=2, rate=23.976, maxndl=25) seems to be a bit better.

    Since the changes deal only with deleted frames, is there a way to do it
    without reencoding?

    Thanks again.
    Quote Quote  
  14. Originally Posted by dexter30
    Since the changes deal only with deleted frames, is there a way to do it
    without reencoding?
    In theory, since you are only removing duplicate frames, this could be done without reencoding. Predicted frames that referenced one of the deleted frames could be re-referenced to the remaining frame that matches the deleted frames. I'm not aware of any application that does this highly specialized type of editing though.
    Quote Quote  



Similar Threads

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