opencv3.4.3 + Python3.6 读取本地视频并显示,获取视频fps和总帧数

应该是最简单的一种方式了

代码和讲解如下

# -*- coding: utf-8 -*-
import cv2

# 读取视频
cap = cv2.VideoCapture("2.avi")
# 获取FPS(每秒传输帧数(Frames Per Second))
fps = cap.get(cv2.CAP_PROP_FPS)
# 获取总帧数
totalFrameNumber = cap.get(cv2.CAP_PROP_FRAME_COUNT)
print(fps)
print(totalFrameNumber)
# 当前读取到第几帧
COUNT = 0

# 若小于总帧数则读一帧图像
while COUNT < totalFrameNumber:
    # 一帧一帧图像读取
    ret, frame = cap.read()
    # 把每一帧图像保存成jpg格式(这一行可以根据需要选择保留)
    cv2.imwrite(str(COUNT) + '.jpg', frame)
    # 显示这一帧地图像
    cv2.imshow('video', frame)
    COUNT = COUNT + 1
    # 延时一段33ms(1s➗30帧)再读取下一帧,如果没有这一句便无法正常显示视频
    cv2.waitKey(33)
    
cap.release();

执行结果:
opencv3.4.3 + Python3.6 读取本地视频并显示,获取视频fps和总帧数