#!/usr/bin/python # -*- coding: utf-8 -*- # vi:si:et:sw=4:sts=4:ts=4 # GPL 2008 import os import sys from glob import glob from optparse import OptionParser import Image root = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..') if os.path.exists(os.path.join(root, 'oxtimeline')): sys.path.insert(0, root) import ox import oxtimeline from oxtimeline import audio, video if __name__ == '__main__': parser = OptionParser() parser.add_option('-x', '--width', dest='width', help='pixels per tile, defaults to 1500px', default=1500, type="int") parser.add_option('-y', '--height', dest='height', help='timeline height, defaults to 64px', default=64, type="int") parser.add_option('-o', '--prefix', dest='prefix', help='prefix for timeline tiles') parser.add_option('-i', '--input', dest='input', help='video input') parser.add_option('-m', '--mode', dest='mode', default='average', help='timeline mode: average(default), center for video and waveform(default), pixel for audio') parser.add_option('-a', '--audio', action="store_true", dest="audio", default=False) (opts, args) = parser.parse_args() if None in (opts.prefix, opts.input): parser.print_help() sys.exit() for f in glob('%s*.png' % opts.prefix): os.unlink(f) opts.input = os.path.abspath(opts.input) info = ox.avinfo(opts.input) if not info['video'] or opts.audio or opts.mode in ('waveform', 'pixel'): if opts.mode == 'average': opts.mode = 'waveform' audio.Timeline(opts.input, opts.prefix, opts.width, opts.height, opts.mode) else: video.Timeline(opts.input, opts.prefix, opts.width, opts.height, opts.mode) if opts.mode not in ('center', 'pixel'): #oxtimeline.createTimelineMultiline(opts.prefix) oxtimeline.makeTiles(opts.prefix, 16, 3600) oxtimeline.makeTimelineOverview(opts.prefix, 1920, height=16) oxtimeline.makeTimelineOverview(opts.prefix, 1920, height=64)