@@ -550,21 +550,26 @@ def write_video(self, out_folder, video_file_path, out_name, events):
550550 return
551551
552552 fourcc = cv2 .VideoWriter_fourcc (* "avc1" ) # Adjust the codec as needed
553- out = cv2 .VideoWriter (
554- os .path .join (out_folder , f"{ out_name } " ),
555- fourcc ,
556- 30.0 ,
557- (int (cap .get (3 )), int (cap .get (4 ))),
558- )
559553
560- for triple in data :
554+ out_videos = []
555+
556+ for idx , triple in enumerate (data ):
557+
558+ out = cv2 .VideoWriter (
559+ os .path .join (out_folder , f"{ out_name } _{ idx } " ),
560+ fourcc ,
561+ 30.0 ,
562+ (int (cap .get (3 )), int (cap .get (4 ))),
563+ )
564+ out_videos .append (os .path .join (out_folder , f"{ out_name } _{ idx } " ))
565+
561566 time_slice = triple ["time_slice" ]
562567 sender_animal_name = triple ["sender_animal_name" ]
563568 sender_keypoints = triple ["sender_keypoints" ]
564569 receiver_keypoints = triple ["receiver_keypoints" ]
565570 cap .set (cv2 .CAP_PROP_POS_FRAMES , time_slice [0 ])
566571 offset = 0
567-
572+
568573 while cap .isOpened ():
569574 current_frame = time_slice [0 ] + offset
570575 ret , frame = cap .read ()
@@ -669,6 +674,8 @@ def write_video(self, out_folder, video_file_path, out_name, events):
669674 cap .release ()
670675 out .release ()
671676 cv2 .destroyAllWindows ()
677+
678+ return out_videos
672679
673680 def generate_video_clips_from_events (
674681 self , out_folder , video_file , events : List [BaseEvent ], behavior_name
@@ -683,5 +690,5 @@ def generate_video_clips_from_events(
683690 videoname = video_file .split ("/" )[- 1 ].replace (".mp4" , "" ).replace (".avi" , "" )
684691 video_name = f"{ videoname } _{ behavior_name } _video.mp4"
685692
686- self .write_video (out_folder , video_file , video_name , events )
687- return os . path . join ( out_folder , video_name )
693+ out_videos = self .write_video (out_folder , video_file , video_name , events )
694+ return out_videos
0 commit comments