I want to capture a live video stream from a USB capture device and write it to a file. I'm using OpenCV and Python to capture and write the video. The capture devices will vary, so the frame rate may be different depending on the capture device and the video source. I have tried capturing 10 seconds of video and dividing the number of captured frames by the elapsed time, but the resultant frame rate is not accurate because I believe some of the captured frames are duplicates of another captured frame. If I reduce the frame count by the number of duplicated frames, I get closer to the correct frame rate, but not close enough.
Does anyone have a recommendation on how to accurately determine frame rate (good enough to distinguish 29.97 fps from 30 fps)? Or, is there a free Windows application that will analyze a video stream from a USB capture device and provide me an accurate frames per second?
+ Reply to Thread
Results 1 to 3 of 3
accurate framerate of your usb is exact number of frames divided by number of seconds. Containing duplicates. Maybe the question could be What is the frame rate of transmited stream ? If Pal 25 then "each 5th frame" will be duplicated. If 15 "each frame" will be duplicate.
Or stream can be transmited as variable framerate. But stay at Constant frame rate. Duplicated frames when encoding doesnt take much bitrate (x264 or x265) even in xvid shouldnt.
Useful software about your captured file Mediainfo, avidemux, VLC, or potplayer (tab or different statistics in CTRL+F1 there are three tabs, the second is for you most important.
In avidemux you can count duplicated frames to compare them, or there is filter, that delete duplicated frames (but dont recommend it)
Last edited by Bernix; 29th Oct 2017 at 13:18. Reason: framerate
Yes, have you opened the video in MediaInfo? I think the fact there are duplicate frames is irrelevant to figuring out the framerate. Many capture apps will create dupe frames when it can't cap fast enough or the video stream is somehow erratic or corrupted.
Have you checked on the exact length of the audio stream? You can also determine the framerate by knowing its length and the number of frames captured (assuming no dropped frames).