Как обрабатывать разные части одного и того же видео параллельно? - PullRequest
0 голосов
/ 11 июня 2019

Я сейчас пытаюсь обработать видео параллельно.Однако я не смог использовать только один захват видео, а затем позволить каждому процессу получить доступ к той части, которая ему соответствует.Интересно, есть ли способ создать фрагменты видео, чтобы мне не приходилось выделять все видео на каждый процесс.Я хотел бы сделать что-то вроде этого:

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)       

Однако это не сработает, потому что читатель блокирует видео в одном конкретном кадре, поэтому только один из процессов сможет продвигаться через видео.Интересно, есть ли другой способ добиться чего-то подобного?любая рекомендация очень приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...