fbpx [フレーム]
  • Home
  • >
  • OpenCV
  • >
  • Find frame rate (frames per second-fps) in OpenCV (Python/C++)

Find frame rate (frames per second-fps) in OpenCV (Python/C++)

In OpenCV the class VideoCapture handles reading videos and grabbing frames from connected cameras. There is a lot of information you can find about the video file you are playing by using the get(PROPERTY_NAME) method in VideoCapture. One of the common properties you may want to know is to find

In OpenCV the class VideoCapture handles reading videos and grabbing frames from connected cameras. There is a lot of information you can find about the video file you are playing by using the get(PROPERTY_NAME) method in VideoCapture. One of the common properties you may want to know is to find frame rate or frames per second. You can download all code and example images used in this post here.

This post has been tested on OpenCV 4.2.

How to find frame rate of a camera / webcam in OpenCV ?

In OpenCV finding the frame rate of a connected camera / webcam is not straight forward. The documentation says that get(CAP_PROP_FPS) or get(CV_CAP_PROP_FPS) gives the frames per second. Now that is true for video files, but not for webcams. For webcams and many other connected cameras, you have to calculate the frames per second manually. You can read a certain number of frames from the video and see how much time has elapsed to calculate frames per second.

Download Code To easily follow along this tutorial, please download code by clicking on the button below. It's FREE!

Python

#!/usr/bin/env python
import cv2
import time
if __name__ == '__main__' :
 # Start default camera
 video = cv2.VideoCapture(0);
 # Find OpenCV version
 (major_ver, minor_ver, subminor_ver) = (cv2.__version__).split('.')
 # With webcam get(CV_CAP_PROP_FPS) does not work.
 # Let's see for ourselves.
 if int(major_ver) < 3 :
 fps = video.get(cv2.cv.CV_CAP_PROP_FPS)
 print("Frames per second using video.get(cv2.cv.CV_CAP_PROP_FPS): {0}".format(fps))
 else :
 fps = video.get(cv2.CAP_PROP_FPS)
 print("Frames per second using video.get(cv2.CAP_PROP_FPS) : {0}".format(fps))
 # Number of frames to capture
 num_frames = 120;
 print("Capturing {0} frames".format(num_frames))
 # Start time
 start = time.time()
 # Grab a few frames
 for i in range(0, num_frames) :
 ret, frame = video.read()
 # End time
 end = time.time()
 # Time elapsed
 seconds = end - start
 print ("Time taken : {0} seconds".format(seconds))
 # Calculate frames per second
 fps = num_frames / seconds
 print("Estimated frames per second : {0}".format(fps))
 # Release video
 video.release()

C++

#include "opencv2/opencv.hpp"
#include <time.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
 // Start default camera
 VideoCapture video(0);
 // With webcam get(CV_CAP_PROP_FPS) does not work.
 // Let's see for ourselves.
 // double fps = video.get(CV_CAP_PROP_FPS);
 // If you do not care about backward compatibility
 // You can use the following instead for OpenCV 3
 double fps = video.get(CAP_PROP_FPS);
 cout << "Frames per second using video.get(CAP_PROP_FPS) : " << fps << endl;
 // Number of frames to capture
 int num_frames = 120;
 // Start and end times
 time_t start, end;
 // Variable for storing video frames
 Mat frame;
 cout << "Capturing " << num_frames << " frames" << endl ;
 // Start time
 time(&start);
 // Grab a few frames
 for(int i = 0; i < num_frames; i++)
 {
 video >> frame;
 }
 // End Time
 time(&end);
 // Time elapsed
 double seconds = difftime (end, start);
 cout << "Time taken : " << seconds << " seconds" << endl;
 // Calculate frames per second
 fps = num_frames / seconds;
 cout << "Estimated frames per second : " << fps << endl;
 // Release video
 video.release();
 return 0;
}

How to find frame rate of a video in OpenCV ?

If you are reading a video file you can simply use the get method to obtain frames per second. The following examples show the usage.

Python

import cv2
if __name__ == '__main__' :
 video = cv2.VideoCapture("video.mp4");
 # Find OpenCV version
 (major_ver, minor_ver, subminor_ver) = (cv2.__version__).split('.')
 if int(major_ver) < 3 :
 fps = video.get(cv2.cv.CV_CAP_PROP_FPS)
 print ("Frames per second using video.get(cv2.cv.CV_CAP_PROP_FPS): {0}".format(fps))
 else :
 fps = video.get(cv2.CAP_PROP_FPS)
 print ("Frames per second using video.get(cv2.CAP_PROP_FPS) : {0}".format(fps))
 video.release()

C++

#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
 // Open video file
 VideoCapture video("video.mp4");
 // double fps = video.get(CV_CAP_PROP_FPS);
 // For OpenCV 3, you can also use the following
 double fps = video.get(CAP_PROP_FPS);
 cout << "Frames per second using video.get(CAP_PROP_FPS) : " << fps << endl;
 video.release();
 return 0; 
}

Summary

In this we discussed finding the frames per second-fps in OpenCV. We also provided the Python/C++ code for practice and study.

Key Takeaways

  1. OpenCV class VideoCapture handles reading videos and grabbing frames from connected cameras.
  2. The method PROPERTY_NAME helps find lot of information about the video file being played.
  3. Common property we may want to know, frame rate or frames per second, is discussed in detail.
  4. When reading a video file simply use the get method to obtain frames per second.
Was This Article Helpful?

Table of Contents

Was This Article Helpful?

Read Next

Shubham October 7, 2025

VideoRAG: Redefining Long-Context Video Comprehension

Discover VideoRAG, a framework that fuses graph-based reasoning and multi-modal retrieval to enhance LLMs' ability to understand multi-hour videos efficiently.

Kukil September 30, 2025

AI Agent in Action: Automating Desktop Tasks with VLMs

Learn how to build AI agent from scratch using Moondream3 and Gemini. It is a generic task based agent free from…

Bhomik Sharma September 23, 2025

The Ultimate Guide To VLM Evaluation Metrics, Datasets, And Benchmarks

Get a comprehensive overview of VLM Evaluation Metrics, Benchmarks and various datasets for tasks like VQA, OCR and Image Captioning.

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.

Subscribe to receive the download link, receive updates, and be notified of bug fixes

Which email should I send you the download link?

  • We hate SPAM and promise to keep your email address safe.

Get Started with OpenCV

  • FREE OpenCV Crash Course
  • Getting Started Guides
  • Installation Packages
  • C++ And Python Examples
  • Newsletter Insights
  • We hate SPAM and promise to keep your email address safe.
Subscribe To Receive
  • FREE OpenCV Crash Course
  • Getting Started Guides
  • Installation Packages
  • C++ And Python Examples
  • Newsletter Insights

We hate SPAM and promise to keep your email address safe.​

  • We hate SPAM and promise to keep your email address safe.

AltStyle によって変換されたページ (->オリジナル) /