【发布时间】:2019-08-28 09:02:33
【问题描述】:
我正在尝试将 c.5 分钟的视频转换为 c.600 帧,每秒 2 帧。当我使用下面的代码时,它似乎吐出了超过 600 帧,我在能够退出命令之前达到了 13,000 帧。
这是我的 mp3 文件的属性。 长度:00:05:06 框架宽度:256 框架高度:144 数据速率:78kbps 总比特率:204kbps 帧率:30
我已确认vidcap.set(cv2.CAP_PROP_POS_MSEC,sec*1000) 以毫秒为单位,因此sec*1000 应以秒为单位。
我使用打印检查了 Sec 值,它们的计数正确。
from PIL import Image
import os, sys
import cv2
import numpy as numpy
import matplotlib.pyplot as plt
vidcap = cv2.VideoCapture('4K Traffic camera video - Low.mp4')
def getFrame(sec):
vidcap.set(cv2.CAP_PROP_POS_MSEC,sec*1000)
hasFrames,image = vidcap.read()
if hasFrames:
cv2.imwrite(os.path.join('Video_Frame_Low', str(count) + '.jpg'), image) # save frame as JPG file
return hasFrames
sec = 0
frameRate = 0.5 #//it will capture image in each 0.5 second
count=1
success = getFrame(sec)
while success:
count = count + 1
sec = sec + frameRate
sec = round(sec, 2)
success = getFrame(sec)
我希望得到 612 帧
【问题讨论】:
标签: python opencv python-imaging-library