from random import randint import cv2 import numpy as np import os import multiprocessing import time class Video: def __init__(self, x, y): self.x = x self.y = y def setVideo(self, path): self.path = path def start(self): self.run = True self.cap = cv2.VideoCapture(self.path) # Check if camera opened successfully if (self.cap.isOpened()== False): print("Error opening video file") totalframecount= int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) print("The total number of frames in this video is ", totalframecount) # self.cap.set(cv2.CAP_PROP_POS_FRAMES, randint(0, totalframecount* 0.9)) # Read until video is completed while(self.cap.isOpened() and self.run): # Capture frame-by-frame ret, frame = self.cap.read() if ret == True: # Display the resulting frame cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN) cv2.moveWindow("window", self.x, self.y) cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN) cv2.imshow("window", frame) # Break the loop else: break def stop(self): self.run = False self.cap.release() # Closes all the frames cv2.destroyAllWindows() if __name__ == "__main__": video = Video(0, 0) video.setVideo("slave/sample-mp4-file.mp4") x = multiprocessing.Process(target = video.start) x.start() time.sleep(1) x.terminate() time.sleep(1) x = multiprocessing.Process(target = video.start) x.start() time.sleep(1) x.terminate()