VideoHelp Forum
+ Reply to Thread
Results 1 to 3 of 3
Thread
  1. I need a list of missing frames from a video. I tried:


    WriteFileIf(last, "D:\list.txt", "YDifferenceFromPrevious>3", "current_frame" )


    It works, but not very well. I found a better functiom here, thanks to johnmeyer:


    function ShowMetrics (clip c)
    {
    fixed=source.ScriptClip("Subtitle(String(
    \ (( (YDifferenceFromPrevious(selectevery(source, 1, 2)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, 3)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, 2)) )
    \ +
    \ (YDifferenceFromPrevious(selectevery(source, 1, 1)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, 2)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, 1)) )
    \ +
    \ (YDifferenceFromPrevious(selectevery(source, 1, -1)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, -2)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, -1)) )
    \ +
    \ (YDifferenceFromPrevious(selectevery(source, 1, -2)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, -3)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, -2)) )
    \ )/4) /
    \ (YDifferenceFromPrevious(source) + 0.01)
    \ ))")
    return fixed
    }

    global source=AVISource("E:\fs.avi").ConvertToYV12.killau dio()


    How can I modify it to output to a text file instead of subtitles?
    Quote Quote  
  2. Here is a link to the script I wrote:

    Script for reliably detecting dropped frames

    If you prefer writing your own script, you may find some additional ideas in this similar script:

    Finding individual "bad" frames in video; save frame number; or repair

    This one shows you how to save the frame numbers to a text file.
    Quote Quote  
  3. Thank you johnmeyer for everything you wrote over the years on the forums.
    I have read many of your excellent posts, thank you very much.

    I would love a motion estimation detection method for missing frames.
    I expect some professional software is using something like that,
    I just did not find it yet.

    I tried to modify the ShowMetrics function:


    WriteFileIf(source, "D:\list.txt", "(
    \ (( (YDifferenceFromPrevious(selectevery(source, 1, 2)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, 3)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, 2)) )
    \ +
    \ (YDifferenceFromPrevious(selectevery(source, 1, 1)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, 2)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, 1)) )
    \ +
    \ (YDifferenceFromPrevious(selectevery(source, 1, -1)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, -2)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, -1)) )
    \ +
    \ (YDifferenceFromPrevious(selectevery(source, 1, -2)) < 0.3 ?
    \ YDifferenceFromPrevious(selectevery(source, 1, -3)) :
    \ YDifferenceFromPrevious(selectevery(source, 1, -2)) )
    \ )/4) /
    \ (YDifferenceFromPrevious(source) + 0.01)
    \ )", "current_frame" )


    But it is not good, it writes every frame number to file.

    Sadly, I am not a programmer and I am out of ideas.
    Any help vould be greatly appreciated.
    Quote Quote  



Similar Threads

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