Я хочу написать программу, которая отслеживает и отслеживает объекты в двух разных видео, используя openCV в python (cv2).

Я хочу объединить два видео в одно видео , а затем запустить на этом видео программу для отслеживания объектов.

Может ли кто-нибудь показать и объяснить инструкции по их слиянию?

Мой код здесь не работает. Запускает видео 2 после первого кадра видео 1.

import cv2


capture = cv2.VideoCapture('p1a_tetris_1.mp4') #tell open cv to use the following video file as input


while capture.isOpened():


        ret, frame = capture.read() #capture each frame from the video . 
                                #ret is a boolean to indicate if the 

        if ret == True :    
            grayFrame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # apply gray frame to current frame


            cv2.imshow('video Part 1', grayFrame) # shows video in grascale 


        else : 
            capture = cv2.VideoCapture('p1a_tetris_2.mp4')

            while capture.isOpened():
                try:      
                    ret, frame = capture.read()
                    print(ret)

                    if ret == True :    
                        grayFrame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # apply gray frame to current frame

                        cv2.imshow('Video Part 2', grayFrame) # shows video in grascale 

                        if cv2.waitKey(1) == 27:
                            break
                    else : 

                        break
                except :
                    print("error occured")

Capture.release () cv2.destroyAllWindows ()

0
0xD1x0n 18 Апр 2020 в 16:17

1 ответ

Лучший ответ

FFMPEG не был моим решением ...

Вместо этого я использовал moviepy (кстати, гораздо проще)

from moviepy.editor import VideoFileClip, concatenate_videoclips


clip_1 = VideoFileClip("p1b_tetris_1.mp4")
clip_2 = VideoFileClip("p1b_tetris_2.mp4")
final_clip = concatenate_videoclips([clip_1,clip_2])
final_clip.write_videofile("final.mp4")
3
Haozhe Xie 18 Ноя 2020 в 12:35