OpenCV Python – Play Video from File
Playing video files is a fundamental task in OpenCV. It allows you to read and display video frames from a saved file and process them in real time.
In this tutorial, you will learn how to play video from a file using OpenCV Python step by step.
1. What is Video Playback in OpenCV?
Video playback means reading a video file frame by frame and displaying it on the screen.
It is used for:
- Video analysis
- Frame-by-frame processing
- Surveillance video review
- AI-based video processing
2. Import OpenCV
import cv2
3. Load Video File
Syntax:
cv2.VideoCapture("filename.mp4")
Example:
cap = cv2.VideoCapture("video.mp4")
4. Play Video Frame by Frame
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
cv2.imshow("Video Playback", frame)
if cv2.waitKey(25) & 0xFF == 27: # ESC key
break
cap.release()
cv2.destroyAllWindows()
5. Check Video Properties
You can get video details:
fps = cap.get(cv2.CAP_PROP_FPS)
frame_count = cap.get(cv2.CAP_PROP_FRAME_COUNT)
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
print("FPS:", fps)
print("Frames:", frame_count)
print("Width:", width)
print("Height:", height)
6. Convert Video to Grayscale
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Grayscale Video", gray)
if cv2.waitKey(25) & 0xFF == 27:
break
7. Why Video Playback is Important
Video playback is used in:
- Video editing tools
- AI video analysis
- Surveillance systems
- Motion tracking systems
- Frame extraction systems
8. Common Mistakes
❌ Video not opening
✔ Solution:
- Check file path
- Use correct format (mp4, avi)
❌ Video too fast or slow
✔ Solution:
-
Adjust
cv2.waitKey()value
9. Conclusion
Playing video from a file in OpenCV Python is essential for video analysis and processing applications. It allows frame-by-frame control for AI and computer vision tasks.
Once you master this, you can move to advanced topics like video recording and real-time video processing.


0 Comments