* add install script

* tune commandline interface
* remove tiles that might be left over from previous run
* general cleanup and fixes
This commit is contained in:
j 2012-05-16 12:08:35 +02:00
commit 2bb2cb687e
5 changed files with 113 additions and 39 deletions

33
bin/oxtimelines Normal file → Executable file
View file

@ -16,10 +16,12 @@ if os.path.exists(os.path.join(root, 'oxtimelines')):
import ox
import oxtimelines
from oxtimelines import video
'''
This program takes one or more video files as input and outputs timeline images.
# fixme: -w option should be 'keyframeswide' mode
if __name__ == '__main__':
usage = '''
%prog takes one or more video files as input and outputs timeline images.
If a cuts path is given, it also outputs a json file containing cuts. If in and
out points are given, only that part of the video(s) will be rendered.
@ -33,35 +35,26 @@ widths will be 1 px per frame for the first one, and 1 px per second for the
second (smaller) one. If the wide option is set, large 'keyframeswide' tiles
will be rendered. They can be used at a later point to render small 'keyframes'
tiles without having to decode the video again.
'''
# fixme: -w option should be 'keyframeswide' mode
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('-v', '--videos', dest='videos', help='video file(s)')
parser.add_option('-t', '--tiles', dest='tiles', help='path for combined timeline tiles')
usage: %prog [options] video1 video2'''
parser = OptionParser(usage=usage)
parser.add_option('-o', '--output', dest='tiles', help='path for combined timeline tiles')
parser.add_option('-c', '--cuts', dest='cuts', help='path for combined cuts json file')
parser.add_option('-p', '--points', dest='points', help='inpoint,outpoint (optional)')
parser.add_option('-m', '--modes', dest='modes', help='timeline mode(s) (antialias, slitscan, keyframes, audio, cuts, data)')
parser.add_option('-s', '--sizes', dest='sizes', help='timeline size(s) (large or large,small)')
parser.add_option('-s', '--sizes', dest='sizes', help='timeline size(s) (64 or 64,16)')
parser.add_option('-w', '--wide', dest='wide', default=False, action='store_true', help='keep wide frames tiles')
parser.add_option('-l', '--log', dest='log', default=False, action='store_true', help='log performance')
(opts, args) = parser.parse_args()
if None in (opts.videos, opts.modes, opts.sizes):
if None in (opts.modes, opts.sizes, opts.tiles) or not args:
parser.print_help()
sys.exit()
opts.videos = map(lambda x: os.path.abspath(x), opts.videos.split(','))
opts.videos = map(os.path.abspath, args)
if opts.points:
opts.points = map(float, opts.points.split(','))
opts.modes = opts.modes.split(',')
opts.modes = [m.strip() for m in opts.modes.split(',')]
opts.sizes = map(int, opts.sizes.split(','))
'''
for f in glob('%s*.png' % opts.tiles):
os.unlink(f)
'''
video.Timelines(opts.videos, opts.tiles, opts.cuts, opts.points, opts.modes, opts.sizes, opts.wide, opts.log).render()
oxtimelines.Timelines(opts.videos, opts.tiles, opts.cuts, opts.points, opts.modes, opts.sizes, opts.wide, opts.log).render()