1.cv2.VideoCapture
主要用到该API:cv2.VideoCapture(filename),filename输入视频文件路径,同时用到cv2.CAP_PROP_FPS获取视频的fps,以及cv2.CAP_PROP_FRAME_COUNT来获取视频总帧数。
fps为视频每秒播放的帧数。视频时长=fNUMS/fps,即 总帧数/FPS。比如下面这个就是
457/29.42越等为15s.
代码如下:
import numpy as np
import cv2
video = cv2.VideoCapture('sea.mp4')
# 获得码率及尺寸
fps = video.get(cv2.CAP_PROP_FPS)
size = (int(video.get(cv2.CAP_PROP_FRAME_WIDTH)), int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)))
fNUMS = video.get(cv2.CAP_PROP_FRAME_COUNT)
print(fps," ",fNUMS) #打印结果29.4206008583691 457.0
#计算可得视频时长15s, 457 / 29.42
while success:
success, frame = video.read()
frame = cv2.resize(frame, (960, 540)) # 缩放
cv2.imshow('windows', frame) # 显示
cv2.waitKey(int(1000 / int(fps))) # 设置延迟时间
video.release()
现象:
视频时长如下: