import threading
import cv2
import time
import os
path2 = '../image/' #图片保存位置
if not os.path.exists(path2):
os.makedirs(path2)
class myThread(threading.Thread):
def __init__(self, start_frame, length):
super(myThread, self).__init__()
self.start_frame = start_frame
self.length = length
def run(self):
cap = cv2.VideoCapture("E:盐田视频数据\2021-09-27\3号机9月18跑大车\00000001744000000.mp4") #视频位置
cap.set(cv2.CAP_PROP_POS_frameS, self.start_frame)
freq = 100
for idx in range(self.length):
ret = cap.grab()
if not ret:
break
if idx % freq == 0:
ret, frame = cap.retrieve()
if frame is None: # exist broken frame
break
cv2.imwrite(path2 + str(idx+self.start_frame) + '.jpg', frame)
# do something else
...
cap.release()
n = 10
a=[1]*n
for i in range(n):
a[i]=myThread(i*40000,i*40000+40000) #一个线程处理40000帧数据
i = i + 1
for i in range(n):
a[i].start()