def produce(self, ip): def getframepath(frame, base=None): l1 = frame / 10000 l2 = frame / 100 path = "{0}/{1}/{2}.jpg".format(l1, l2, frame) if base is not None: path = "{0}/{1}".format(base, path) return path if self.prms_['op_dir'] is None: op_dir = os.path.dirname(ip) else: op_dir = self.prms_['op_dir'] try: os.makedirs(op_dir) except: pass sequence = ffmpeg.extract(ip) try: for frame, image in enumerate(sequence): if frame % 100 == 0: print("Decoding frames {0} to {1}".format( frame, frame + 100)) path = getframepath(frame, op_dir) try: image.save(path) except IOError: os.makedirs(os.path.dirname(path)) image.save(path) except: print "ffmpeg may not be installed" print "Aborted. Cleaning up..." shutil.rmtree(op_dir) raise yield op_dir
def produce(self, ip): def getframepath(frame, base = None): l1 = frame / 10000 l2 = frame / 100 path = "{0}/{1}/{2}.jpg".format(l1, l2, frame) if base is not None: path = "{0}/{1}".format(base, path) return path if self.prms_['op_dir'] is None: op_dir = os.path.dirname(ip) else: op_dir = self.prms_['op_dir'] try: os.makedirs(op_dir) except: pass sequence = ffmpeg.extract(ip) try: for frame, image in enumerate(sequence): if frame % 100 == 0: print ("Decoding frames {0} to {1}" .format(frame, frame + 100)) path = getframepath(frame, op_dir) try: image.save(path) except IOError: os.makedirs(os.path.dirname(path)) image.save(path) except: print "ffmpeg may not be installed" print "Aborted. Cleaning up..." shutil.rmtree(op_dir) raise yield op_dir
def __init__(self, prms={}): """ :param prms: directory of parameters in this case containing only a possible output dir e.g., {'op_dir': '~/Desktop/'} if None, the input directory is used :return: """ defPrms = edict({'op_dir': None, 'vidName': None}) prms = cu.get_defaults(prms, defPrms, True) ch.ChainObjectIter.__init__(self, prms) assert self.prms_.vidName is not None ip = self.prms_.vidName #Form the path is necessary if self.prms_['op_dir'] is None: op_dir = os.path.dirname(ip) else: op_dir = self.prms_['op_dir'] try: os.makedirs(op_dir) except: pass sequence = ffmpeg.extract(ip) opNames = [] try: for frame, image in enumerate(sequence): if frame % 100 == 0: print ("Decoding frames {0} to {1}" .format(frame, frame + 100)) path = getframepath(frame, op_dir) try: image.save(path) except IOError: os.makedirs(os.path.dirname(path)) image.save(path) opNames.append(path) except: print "ffmpeg may not be installed" print "Aborted. Cleaning up..." shutil.rmtree(op_dir) raise self.iter_ = opNames