VideoHelp Forum
+ Reply to Thread
Results 1 to 4 of 4
Thread
  1. Hi everyone,

    if i have large video file of 8hrs recording and wanted to check any video lagness , hang or frame drop any software to check?

    Earlier one had share using ffmpeg and printout the framerate is there a way to printout the framerate every sec?

    for %%a in ("*.mp4") do "C:\ffmpeg\ffmpeg.exe" -i "%%a" -f null -v verbose - 2>%%~na.txt

    to output every sec showing the frame rate?

    the objective is to check the video record any lags or frame drop or anyone have any other alternative which can help to solve this check issue for video? Will be greatly appreciated.
    Quote Quote  
  2. Hi. I also looking for a solution to this for years. I believe some expert have way to identify this? Any kind helper willing to help on this?
    Quote Quote  
  3. There is no good accurate way of doing this automatically for all types of video

    Also, framerate is not necessarily related to frame drops or stutter .

    FFmpeg printing the fps every second is not going necessarily to be indicative of the actual content fps. It depends on the situation, type of video, and method of recording

    For example, in CFR recordings, you can have duplicate "placeholder" frames that take the place of the dropped frames. The frame rate is going to be the same everywhere, ie. every second has the same fps, but you might have different cadences (repeat frames or fields). You have, say 30 frames per second, but ffmpeg doesn't detect what is actually in those 30 frames (it doesn't scan the actual content, it just tells you there are 30 frames every second or whatever fps). For example, if they are all duplicate frames, it's going to appear like no motion - effectively 0 FPS, but it will say 30FPS. If every 2nd frame is a duplicate, it will be effectively 15fps and choppy in motion, but still say 30FPS . FFmpeg will say the same thing every second. One way to examine this is use various duplicate detection methods e.g. scripts . - but they are not always accurate either, because of lossy compression. You can have duplicate frames, but because of compression artifacts, they are considered "different". Also that won't detect actual frame drops or jumps in motion - eg. you can have the same 30fps CFR , but actual dropped frames or gaps in motion

    Some types of recording do change the framerate , eg. variable frame rate (VFR) recording using timecodes. Then you can extract the timecodes and look at those. But again , the timecodes only tell you what the display time of frames are, not the actual content. You can still have duplicate encoded frames, but played back with different delays that do not necessarily correspond to "lagginess" or "frame drops" .
    Quote Quote  
  4. I've never had to deal with variable frame rate video, so if you need to inspect frame rate tags, I can't help. However, if the video has dropped frames, those are almost always followed by dups, in order to keep the audio in sync. Duplicate frames are a cinch to find using a simple AVISynth script like this:

    Code:
    #This script finds exact duplicate frames and outputs the frame numbers
    
    global blankthreshold=3
    
    filename = "e:\output_duplicate_frames.txt"
    AVISource("e:\fs.avi").killaudio()
    i=AssumeBFF.ConvertToYV12
    
    #The line below writes the FIRST frame that falls below the threshold
    WriteFileIf(last, filename,  "(YDifferenceFromPrevious(i)>blankthreshold)&&YDifferenceToNext(i)<=blankthreshold", "current_frame", append = false)
    
    #Use this instead of WriteFile in order to determine blankthreshold
    #ScriptClip("Subtitle(String(YDifferenceFromPrevious(i)))")
    Quote Quote  



Similar Threads

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