def activate(self): self.ta = Audio(ipServer=self.ip_server, portAudio = self.portAudio, file = self.act.data["audioFile"], mg = mg, idAct = self.act.id) self.tv1 = Video(ipServer=self.ip_server, port = self.port1, file = self.act.data["video1File"]) self.tv2 = Video(ipServer=self.ip_server, port = self.port2, file = self.act.data["video2File"]) self.tv3 = Video(ipServer=self.ip_server, port = self.port3, file = self.act.data["video3File"]) self.tv4 = Video(ipServer=self.ip_server, port = self.port4, file = self.act.data["video4File"]) print("activated")
def __getitem__(self, index): data_id = self.ids[index] # Needed to find Video Directory user = self.id_to_user[data_id] vid_path = self._vidpath % (user, data_id) anno_path = self._annopath % str(data_id) print("loading video: %s" % vid_path) print("loading aligns: %s" % anno_path) # each frame is (288, 360, 3) by default video = Video(vid_path, anno_path, self.transform, self.target_transform) #TODO: If we want Transforms for videos # Ideas are to mirror frames and randomly select video for data augmentation # Randomly selecting video would be easy, just randomize the ids list # For mirroring, we can # Set transforms in video and have to it in getItem!! ''' if self.transform is not None: img = self.transform(img) if self.target_transform is not None: target = self.target_transform(target) ''' return video
def activate(self, audioFile, video1File, video2File, video3File, video4File, id_act, mg): self.ta = Audio(ipServer=self.ip_server, portAudio=self.portAudio, file=audioFile, mg=mg, idAct=id_act) self.tv1 = Video(ipServer=self.ip_server, port=self.port1, file=video1File) self.tv2 = Video(ipServer=self.ip_server, port=self.port2, file=video1File) self.tv3 = Video(ipServer=self.ip_server, port=self.port3, file=video1File) self.tv4 = Video(ipServer=self.ip_server, port=self.port4, file=video1File) logging.debug("activated")
def files_deduplication(self, path): """ Deduplication algorithm for video files""" def files_deletion(path, files): deep_path = path + "/" + files if os.path.isdir(deep_path): shutil.rmtree(deep_path) else: os.remove(deep_path) def deduplication_resolution(file_resolution_1, file_resolution_2, files_number): """ Local algorithm of deduplication for video resolution """ if file_resolution_1 != None and file_resolution_2 != None: if file_resolution_1 == file_resolution_2: files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "1080p" and file_resolution_2 == "720p": files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "720p" and file_resolution_2 == "1080p": files_deletion(path, files[i1]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "720p" and file_resolution_2 == "480p": files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "480p" and file_resolution_2 == "720p": files_deletion(path, files[i1]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "480p" and file_resolution_2 == "1080p": files_deletion(path, files[i1]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "1080p" and file_resolution_2 == "480p": files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "720p" and file_resolution_2 == None: files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "1080p" and file_resolution_2 == None: files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == "480p" and file_resolution_2 == None: files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == None and file_resolution_2 == "720p": files_deletion(path, files[i1]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == None and file_resolution_2 == "1080p": files_deletion(path, files[i1]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == None and file_resolution_2 == "480p": files_deletion(path, files[i1]) self.count_duplicate += 1 files_number -= 1 elif file_resolution_1 == None and file_resolution_2 == None: files_deletion(path, files[i2]) self.count_duplicate += 1 files_number -= 1 Files = ManageFiles() video = Video() files = Files.list_files(path) i1 = 0 files_number = (len(files) - 1) while i1 < files_number: if video.check(path, files[i1]): serie_title_1 = video.extract_metadata( files[i1])["type"]["serie"][1]["title"] serie_season_1 = video.extract_metadata( files[i1])["type"]["serie"][2]["season"] serie_episode_1 = video.extract_metadata( files[i1])["type"]["serie"][3]["episode"] serie_resolution_1 = video.extract_metadata( files[i1])["type"]["serie"][5]["resolution"] film_title_1 = video.extract_metadata( files[i1])["type"]["film"][1]["title"] film_resolution_1 = video.extract_metadata( files[i1])["type"]["film"][3]["resolution"] if video.is_serie: i2 = i1 + 1 while i2 <= files_number: serie_title_2 = video.extract_metadata( files[i2])["type"]["serie"][1]["title"] serie_season_2 = video.extract_metadata( files[i2])["type"]["serie"][2]["season"] serie_episode_2 = video.extract_metadata( files[i2])["type"]["serie"][3]["episode"] serie_resolution_2 = video.extract_metadata( files[i2])["type"]["serie"][5]["resolution"] if serie_title_1 == serie_title_2: if serie_season_1 == serie_season_2: if serie_episode_1 == serie_episode_2: deduplication_resolution( serie_resolution_1, serie_resolution_2, files_number) i2 += 1 else: i2 = i1 + 1 while i2 <= files_number: film_title_2 = video.extract_metadata( files[i2])["type"]["film"][1]["title"] film_resolution_2 = video.extract_metadata( files[i2])["type"]["film"][3]["resolution"] if film_title_1 == film_title_2: deduplication_resolution(film_resolution_1, film_resolution_2, files_number) i2 += 1 i1 += 1
def files_sorting(self, path, path_dest=None): """ Algorithm to clean and sort video files """ def moving_to(path, specific_series_folder, main_serie_folder, files, path_dest=None): if path_dest != None: if os.path.exists(path_dest + specific_series_folder): if os.path.exists(path_dest + main_serie_folder + specific_series_folder): if not data_files.list_files(path_dest + specific_series_folder): shutil.rmtree(path_dest + specific_series_folder) else: if os.path.exists(path + specific_series_folder): if not data_files.list_files( path + specific_series_folder): shutil.rmtree(path + specific_series_folder) else: shutil.move(path + specific_series_folder, path_dest + main_serie_folder) shutil.move( path + files, path_dest + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: shutil.move( path + files, path_dest + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: if not data_files.list_files(path_dest + specific_series_folder): shutil.rmtree(path_dest + specific_series_folder) else: shutil.move(path + files, path_dest + specific_series_folder) shutil.move(path_dest + specific_series_folder, path_dest + main_serie_folder) self.count_video_files += 1 else: if os.path.exists(path_dest + main_serie_folder + specific_series_folder): if os.path.exists(path + specific_series_folder): if not data_files.list_files( path + specific_series_folder): shutil.rmtree(path + specific_series_folder) else: shutil.move(path + specific_series_folder, path_dest + main_serie_folder) shutil.move( path + files, path_dest + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: shutil.move( path + files, path_dest + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: if os.path.exists(path + specific_series_folder): if not data_files.list_files( path + specific_series_folder): shutil.rmtree(path + specific_series_folder) else: shutil.move(path + specific_series_folder, path_dest + main_serie_folder) shutil.move( path + files, path_dest + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: os.mkdir(path_dest + main_serie_folder + specific_series_folder) shutil.move( path + files, path_dest + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: if os.path.exists(path + specific_series_folder): if os.path.exists(path + main_serie_folder + specific_series_folder): if not data_files.list_files(path + specific_series_folder): shutil.rmtree(path + specific_series_folder) else: shutil.move(path + specific_series_folder, path + main_serie_folder) shutil.move( path + files, path + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: if not data_files.list_files(path + specific_series_folder): shutil.rmtree(path + specific_series_folder) else: shutil.move(path + files, path + specific_series_folder) shutil.move( path + specific_series_folder, path + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: if os.path.exists(path + main_serie_folder + specific_series_folder): shutil.move( path + files, path + main_serie_folder + specific_series_folder) self.count_video_files += 1 else: os.mkdir(path + main_serie_folder + specific_series_folder) shutil.move( path + files, path + main_serie_folder + specific_series_folder) self.count_video_files += 1 data_files = ManageFiles() video = Video() list_files_in_dir = data_files.list_files(path) for files in list_files_in_dir: data_files.split_files(files) if video.check(path, files): video.extract_metadata(files) if path_dest != None: if video.is_video: if video.is_serie: specific_series_folder = "/" + video.title + "_season_" + str( video.season) main_serie_folder = "/Series" if os.path.exists(path_dest + main_serie_folder): moving_to(path, specific_series_folder, main_serie_folder, files, path_dest) else: os.mkdir(path_dest + main_serie_folder) moving_to(path, specific_series_folder, main_serie_folder, files, path_dest) else: folder_title = "/Films" divers_movies_folder = path_dest + folder_title if os.path.exists(divers_movies_folder): shutil.move(path + "/" + files, divers_movies_folder + "/" + files) self.count_video_files += 1 else: os.mkdir(divers_movies_folder) shutil.move(path + "/" + files, divers_movies_folder + "/" + files) self.count_video_files += 1 else: if video.is_video: if video.is_serie: specific_series_folder = "/" + video.title + "_season_" + str( video.season) main_serie_folder = "/Series" if os.path.exists(path + main_serie_folder): moving_to(path, specific_series_folder, main_serie_folder, files) else: os.mkdir(path + main_serie_folder) moving_to(path, specific_series_folder, main_serie_folder, files) else: divers_movies_folder = path + "/Films" if os.path.exists(divers_movies_folder): shutil.move(path + "/" + files, divers_movies_folder + "/" + files) self.count_video_files += 1 else: os.mkdir(divers_movies_folder) shutil.move(path + "/" + files, divers_movies_folder + "/" + files) self.count_video_files += 1
print("delete pidfile", flush=True) # This is only run on windows in the detached child process elif sys.argv[1] == "child": print("child", flush=True) data = json.loads(sys.argv[2]) print("data", flush=True) #id_ = mg.insert_one("test",{"test":data["id"],"test2":ObjectId(data["id"])}) print("test", flush=True) ta = Audio(ipServer=ip_server, portAudio=portAudio, file=data["audioFile"], mg=mg, idAct=data["id"]) tv1 = Video(ipServer=ip_server, port=port1, file=data["video1File"]) tv2 = Video(ipServer=ip_server, port=port2, file=data["video2File"]) tv3 = Video(ipServer=ip_server, port=port3, file=data["video3File"]) tv4 = Video(ipServer=ip_server, port=port4, file=data["video4File"]) print("video", flush=True) ta.start() tv1.start() tv2.start() tv3.start()
class server: """Servidor""" ta = "" tv1 = "" tv2 = "" tv3 = "" tv4 = "" def __init__(self): self.ip_server = "192.168.1.128" self.portAudio = 5000 self.port1 = 5001 self.port2 = 5002 self.port3 = 5003 self.port4 = 5004 def configActividad(self): NombreActividad= datetime.now().strftime("%d-%m-%Y-%H-%M-%S") root = 'db/'+ NombreActividad os.makedirs(root, exist_ok=True) self.act = actividad(root) print("configured activity") def activate(self): self.ta = Audio(ipServer=self.ip_server, portAudio = self.portAudio, file = self.act.data["audioFile"], mg = mg, idAct = self.act.id) self.tv1 = Video(ipServer=self.ip_server, port = self.port1, file = self.act.data["video1File"]) self.tv2 = Video(ipServer=self.ip_server, port = self.port2, file = self.act.data["video2File"]) self.tv3 = Video(ipServer=self.ip_server, port = self.port3, file = self.act.data["video3File"]) self.tv4 = Video(ipServer=self.ip_server, port = self.port4, file = self.act.data["video4File"]) print("activated") def start(self): self.ta.start() self.tv1.start() self.tv2.start() self.tv3.start() self.tv4.start() print("listening") def record(self): self.ta.record() self.tv1.record() self.tv2.record() self.tv3.record() self.tv4.record() self.act.startRecording() print("recording") def finished(self): self.ta.finished() self.tv1.finished() self.tv2.finished() self.tv3.finished() self.tv4.finished() self.act.endRecording() print("finished") def processVideo(self): self.op = OPVideo(mg = mg) self.op.getKeyPointsVideo(input = self.act.data["video1File"], outputV = self.act.data["videoout1File"],idact = self.act.id,iduser=0) logging.debug("video1") self.op = OPVideo(mg = mg) self.op.getKeyPointsVideo(input = self.act.data["video2File"], outputV = self.act.data["videoout2File"],idact = self.act.id,iduser=1) logging.debug("video2") self.op = OPVideo(mg = mg) self.op.getKeyPointsVideo(input = self.act.data["video3File"], outputV = self.act.data["videoout3File"],idact = self.act.id,iduser=2) logging.debug("video3") self.op = OPVideo(mg = mg) self.op.getKeyPointsVideo(input = self.act.data["video4File"], outputV = self.act.data["videoout4File"],idact = self.act.id,iduser=3) logging.debug("video4") del self.op
def for_event(self, event: Event): if event.type == VkEventType.MESSAGE_NEW and not event.from_me: patterns = { 'command': r'http[s]*://[\S]+', 'command_s': r'http[s]*://[\S]+\s\d+\s-s', 'command_e': r'http[s]*://[\S]+\s\d+\s-e', 'command_se': r'http[s]*://[\S]+a\s\d+\s\d+', } message = Message(peer_id=event.peer_id) if len(re.findall(patterns['command_se'], event.message)) != 0: for i in re.findall(patterns['command_se'], event.message): self.send_message( message.message('Запрос принят. Ожидайте.')) i = i.split(' ') v = Video(i[0], start_time=i[1], end_time=i[2]) uploaded = self.vk.upload_message_document( v.download(), event.peer_id) message = Message(peer_id=event.peer_id, attachment=Attachment( ATypes.DOC, uploaded.get('doc').get('owner_id'), uploaded.get('doc').get('id'))) self.send_message(message) elif len(re.findall(patterns.get('command_s'), event.message)) != 0: for i in re.findall(patterns.get('command_s'), event.message): message = Message(peer_id=event.peer_id, message='working') self.send_message(message) i = i.split(' ') v = Video(i[0], i[1], i[2]) uploaded = json.loads( self.vk.upload_message_document( v.download(), event.peer_id)) message = Message(peer_id=event.peer_id, attachment=Attachment( ATypes.DOC, uploaded.get('doc').get('owner_id'), uploaded.get('doc').get('id'))) self.send_message(message) else: # keyboard = { # 'inline': True, # 'one_time': False, # 'buttons': # [ # [ # { # 'color': 'primary', # 'action': { # 'type': 'text', # 'label': 'Инструкция' # } # } # ] # ] # } # keyboard = json.dumps(keyboard) keyboard = VkKeyboard(inline=True) keyboard.add_button( VkButton(VkButton.text('Помощь'), color=VkButtonColor.COLOR_SECONDARY)) print(keyboard.json()) self.send_message( message, message=MessageTemplates().NOT_DEFINED.message, payload=keyboard.json())
from video.video import Video import threading import logging from datetime import datetime import time if __name__ == '__main__': ip_server = "192.168.1.128" port = 5003 output = "dataset/test.avi" video = Video(ipServer=ip_server, port = port, file = output, mode = True) print("start") video.start() time.sleep(10) #print("record") #video.record() time.sleep(200) #print("finished") video.finished()