Я сейчас пытаюсь обработать видео параллельно.Однако я не смог использовать только один захват видео, а затем позволить каждому процессу получить доступ к той части, которая ему соответствует.Интересно, есть ли способ создать фрагменты видео, чтобы мне не приходилось выделять все видео на каждый процесс.Я хотел бы сделать что-то вроде этого:
def process(video, init_frame, end_frame):
video.set(cv2.CAP_PROP_POS_MSEC,init_frame*1000.0/FPS)
for i in range(init_frame,end_frame)
im, t = video.read()
#do something with the frame im
def main(file,number_process,fragment_size):
video = cv2.VideoCapture(file)
for i in range(number_process):
start = int(i*fragment_size)
end = int(start+fragment_size)
if i == number_models-1:
end = int(num_frames)
processes[i] = mp.Process(target=process,args=(video,start,end)
Однако это не сработает, потому что читатель блокирует видео в одном конкретном кадре, поэтому только один из процессов сможет продвигаться через видео.Интересно, есть ли другой способ добиться чего-то подобного?любая рекомендация очень приветствуется.