From 278441ee83352dea0e68adeb4af4dc3d394c65e2 Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 27 Jul 2010 17:07:35 +0000 Subject: [PATCH] add columns, fix bi-threading git-svn-id: http://svn.parisson.org/svn/tools/trunk@114 457c0346-1240-4656-8a5a-9edca8063506 --- isp_tools/isp_trans.py | 62 +++++++++++++++++++-------------- isp_tools/source/isp_trans.xls | Bin 13824 -> 15360 bytes 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/isp_tools/isp_trans.py b/isp_tools/isp_trans.py index a101a48..2e40d7b 100644 --- a/isp_tools/isp_trans.py +++ b/isp_tools/isp_trans.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- - #!/usr/bin/python -# -*- coding: utf-8 -*- +#!/usr/bin/python # # Copyright (c) 2009-2010 Guillaume Pellerin @@ -92,13 +91,15 @@ class ISPXLS: self.first_row = 1 self.book = xlrd.open_workbook(file) self.sheet = self.book.sheet_by_index(0) - self.sources = self.get_col(0) - self.dest_names = self.get_col(1) - self.starts_mn = self.get_col(2) - self.starts_s = self.get_col(3) - self.ends_mn = self.get_col(4) - self.ends_s = self.get_col(5) - self.forces = self.get_col(6) + self.cam_dirs = self.get_col(0) + self.sources = self.get_col(1) + self.courses = self.get_col(2) + self.dest_names = self.get_col(3) + self.starts_mn = self.get_col(4) + self.starts_s = self.get_col(5) + self.ends_mn = self.get_col(6) + self.ends_s = self.get_col(7) + self.forces = self.get_col(8) self.size = len(self.sources) def get_col(self, col): @@ -113,13 +114,16 @@ class ISPXLS: data = {} i = 0 for source in self.sources: - data[source] = {} - data[source]['dest_name'] = self.dest_names[i] - data[source]['start_mn'] = self.starts_mn[i] - data[source]['start_s'] = self.starts_s[i] - data[source]['end_mn'] = self.ends_mn[i] - data[source]['end_s'] = self.ends_s[i] - data[source]['force'] = self.forces[i] + data[str(i)] = {} + data[str(i)]['cam_dir'] = self.cam_dirs[i] + data[str(i)]['source_file'] = self.sources[i] + data[str(i)]['course'] = self.courses[i] + data[str(i)]['dest_name'] = self.dest_names[i] + data[str(i)]['start_mn'] = self.starts_mn[i] + data[str(i)]['start_s'] = self.starts_s[i] + data[str(i)]['end_mn'] = self.ends_mn[i] + data[str(i)]['end_s'] = self.ends_s[i] + data[str(i)]['force'] = self.forces[i] i += 1 return data @@ -136,10 +140,11 @@ class ISPTrans(object): self.uid = os.getuid() self.collection = ISPCollection(self.source_dir) - self.sources = self.collection.media_list() + #self.sources = self.collection.media_list() self.xls_file = self.collection.xls_list() self.xls = ISPXLS(self.source_dir + os.sep + self.xls_file[0]) self.trans_dict = self.xls.trans_dict() + #print self.trans_dict self.format = 'flv' self.size = '480x270' @@ -149,7 +154,7 @@ class ISPTrans(object): self.async = '500' self.server = 'parisson.com' - self.user = 'isp' + self.user = 'videojur' self.server_dir = '/home/%s/videos/' % self.user mess = 'version %s started with the folowing parameters :' % version @@ -178,12 +183,16 @@ class ISPTrans(object): def process(self): counter = 0 for source in self.trans_dict.iteritems(): - source_dict = source[1] - - media = self.source_dir + os.sep + source[0] + cam_dir = source_dict['cam_dir'] + source_file = source_dict['source_file'] + media = self.source_dir + os.sep + cam_dir + os.sep + source_file + course = source_dict['course'] name = str(source_dict['dest_name']) - dest = self.dest_dir + os.sep + name + '.' + self.format + dest_dir = self.dest_dir + os.sep + 'videos' + course + if not os.path.exists(dest_dir): + os.makedirs(dest_dir) + dest = dest_dir + os.sep + name + '.' + self.format start_mn = source_dict['start_mn'] start_s = source_dict['start_s'] @@ -194,23 +203,23 @@ class ISPTrans(object): duration = int(end - start) force_mode = source_dict['force'] - if not source[0] in self.sources: + if not os.path.exists(media): mess = 'does NOT exists ! Continuing...' self.logger.write_error(media, mess) print media, mess continue else: if not os.path.exists(dest) or force_mode != '': - counter += 1 mess = 'transcoding from %s:%s to %s:%s -> %s' \ % (str(int(float(start_mn))), str(int(float(start_s))), str(int(float(end_mn))), str(int(float(end_s))), dest) self.logger.write_info(media, mess) command = self.transcode_command(media, str(start), str(duration), dest) - if not counter % 3: + if not counter % 2: while len(get_pid('ffmpeg', self.uid)) > 1: # Only 2 threads for 2 cores and then sleeping - time.sleep(30) + time.sleep(10) os.system(command) + counter += 1 if __name__ == '__main__': @@ -230,4 +239,3 @@ Usage : python isp_trans.py /path/to/source_dir /path/to/transcoded_source_dir / water_img = sys.argv[-1] i = ISPTrans(source_dir, dest_dir, log_file, water_img) i.process() - diff --git a/isp_tools/source/isp_trans.xls b/isp_tools/source/isp_trans.xls index 18d7809f5989b305e4a8f1e63a17e0b1bf28814d..8a57c01c04497dd0804544f7785ea756c03d43a3 100644 GIT binary patch literal 15360 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 literal 13824 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 Oy8U1L{r!Kt{(k~7MB}ai -- 2.39.5